0

Facebook 모듈을 통해 로그인 한 사용자의 전자 메일 주소를 얻으려고합니다. 그러나 모든 시간 오류 얻을 { "오류": ". 오류 코드 2500가 발생했습니다를 활성 액세스 토큰은 현재 사용자에 대한 정보를 조회하는 데 사용되어야합니다."}Appcelerator Titanium에서 Facebook 전자 메일을 가져올 때 오류 2500

내 코드는 다음과 같습니다

var viewClick = function() { 
    fb.logout(); 
    fb.initialize(); 
    fb.authorize(); 
}; 

var facebookLogged = function(e) { 

    fb.requestWithGraphPath("me?fields=name,email,first_name,last_name", {}, 'GET', function(result) { 
     Ti.API.info(JSON.stringify(result)) 
     // var data = JSON.parse(e.result); 
}); 
}; 
var window = Ti.UI.createWindow({exitOnClose: true, navBarHidden: true, fullscreen: true, orientationModes: [ 
     Ti.UI.PORTRAIT, 
     Ti.UI.UPSIDE_PORTRAIT,  
    ], 
    backgroundColor: '#f0f2f2' 
}); 

var fb = require('facebook'); 

if(Ti.Platform.osname === 'android') { 

    window.fbProxy = fb.createActivityWorker({lifecycleContainer: window}); 
} 

    //fb.setLoginBehavior(fb.LOGIN_BEHAVIOR_NATIVE); 
fb.permissions = ['email']; 

window.open(); 


var view = Ti.UI.createView({ 
    height: 200, 
    width: 200, 
    backgroundColor: 'red' 
}); 

view.addEventListener('click', viewClick); 

window.add(view); 
fb.addEventListener('login', facebookLogged); 

fb.requestWithGraphPath("me?fields=name,email,first_name,last_name&access_token=" + e.source.accessToken, {}, 'GET', function(result) {} 

을하지만,이 경우에 나는 accessToken가 잘못되었습니다 infromation를 얻을 : 나는 또한 requestWithGraphPath 매개 변수를 modyfing에 의해 액세스 토큰 코드를 제공하기 위해 노력. TiFacebookModule : (main) [117,178060] requestWithGraphPath 콜백 오류 : 잘못된 액세스 토큰 [여기에 액세스 토큰 값이 있습니까?] access_token = [여기에 액세스 토큰 값]

내가 뭘 잘못 했습니까? FB에서 이메일을받는 방법? 어떤 도움이라도 깊이 감사드립니다.

+0

ps : 토큰을 게시하지 마십시오 –

+0

가짜 계정이므로 (테스트 용 앱이므로) 별거 아니니 :). 그러나 나는 그것을 깨끗하게 할 것이다. – kreatywny

+0

정확히 어디서 인증 토큰을 받고 전달합니까? – developer82

답변

3

동일한 문제가 있었고 이것이 내가하는 일입니다. Android의 경우 requestWithGraphPath가 IOS 대응 제품과 같이 작동하지 않으며 설명서도 업데이트되지 않습니다. 개체의 필드와 첫 번째 매개 변수의 "나"필드 만 보내야합니다.

var facebookLogged = function(e) { 
    fb.requestWithGraphPath("me", { fields: "name,email,first_name,last_name"}, 'GET', function(result) { 
     Ti.API.info(JSON.stringify(result)) 
     // var data = JSON.parse(e.result); 
    }); 
}; 

희망이 있습니다.

+0

고마워요, 안드로이드의 매력처럼 작동합니다. 거기에 같은 문제가 생겨서 IOS에 이메일을 어떻게받을 수 있습니까? – kreatywny

+0

IOS의 경우 "me? fields = name, email, first_name, last_name"은 정상적으로 작동했습니다. 요청 응답을 받습니까? – nbreath

+0

{ "result": "{\"id \ ": \"1498651573764560 \ ", \"last_name \ ": \"Kars \ ", \"name \ ": \"Eren "성공": true, "경로": "나? fields = 이름, 이메일, 이름, 성"} – kreatywny

관련 문제