我正在使用带有 facebook 插件的 PhoneGap/Cordova。一切似乎都正常,除了 getLoginStatus 没有按照这里和这里的定义工作。调用时,它返回一些数据,但不是全部:它不返回 userID 也不返回 signedRequest。这是代码:
FB.getLoginStatus(function(response) {
if (response.status == 'connected') {
var fb_uid = response.authResponse.userID;
var fb_signedRequest = response.authResponse.signedRequest;
alert('logged in');
} else {
alert('not logged in');
}
});
userID 用省略号 (...) 填充,而 signedRequest 未定义。
我设法通过对 /me 的图形调用来获取用户 ID:
FB.api('/me', function(me){
if (me.id) {
var fb_uid = me.id;
}
});
我无法在文档中找到任何方法来获取signed_request,我必须使用它来将facebook用户验证到用户已经与facebook连接的远程服务(我已经进行了登录调用,所以用户是好的)。基本上问题是我对 getLoginStatus 的调用返回
{
status: 'connected',
authResponse: {
session_key: true,
accessToken: 'a long string...',
expiresIn:'a number',
sig: '...', //exactly this string
userID:'...' //exactly this string
secret:'...' //exactly this string
expirationTime:'a long number'
}
}
而不是记录的