我正在使用phonegap facebook插件和facebook javascript api。这是我的代码
FB.init({
appId: "xxxxxxxxxxxxxxx",
status: true,
oauth :true,
nativeInterface: CDV.FB,
//channelURL : 'www', // Channel File
cookie: true,
//useCachedDialogs: false,
xfbml: true
});
FB.login(function(response) {
if (response.authResponse) {
alert(response.authResponse.userID); // literally shows three dots
FB.api('/me', function(me){
if (me.id) {
alert(me.id); // this works
}
});
}
}, { scope: "email" });
我可以从authResponse获取accessToken ....它是一个长字符串。但是userID字段实际上是“......”。我可以通过另一个图形API调用来获取/me
,从服务器额外往返获取用户的ID,但这似乎很浪费。
答案 0 :(得分:6)
[为了OP的利益]您可以在开始显示时通过额外调用服务器来获取客户端中的userID。这是正确的代码:
FB.api('/me', function(me){
if (me.id) {
var facebook_userid = me.id;
alert(facebook_userid);
}
});
这并不能解释为什么登录响应对象中的userID字段为"..."
。但这是一种解决方法。
答案 1 :(得分:1)
我在github(https://github.com/davejohnson/phonegap-plugin-facebook-connect/issues/151)上发布了一个错误,因为这似乎是该插件的“功能”。不确定问题是在facebook IOS sdk中(不是从FB传回这些数据)还是在插件中(没有将这些数据传回JS级别)。