我尝试获取通过Facebook模块登录的用户的电子邮件地址。但每次都会出错{“error”:“出现了错误代码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);
我还试图通过修改requestWithGraphPath参数来提供访问令牌代码:
fb.requestWithGraphPath("me?fields=name,email,first_name,last_name&access_token=" + e.source.accessToken, {}, 'GET', function(result) {}
但在这种情况下,我得到的信息是accessToken格式不正确。 TiFacebookModule :(主要)[117,178060] requestWithGraphPath回调错误:格式错误的访问令牌[这里是访问令牌值]?access_token = [这里是访问令牌值]
我做错了什么?如何从FB获取电子邮件?任何帮助深深感激。
答案 0 :(得分:3)
我有同样的问题,这就是我所做的,对于Android,requestWithGraphPath不像IOS对应的那样工作,文档也没有更新。您需要发送对象中的字段,而不是第一个参数中的“me”:
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);
});
};
希望它有所帮助。