有人可以解释为什么 api('/me'... 调用在 getLoginStatus 块内工作并且在块外失败吗?
(当我说失败时,未定义的 response.name 以及其他所有内容)
我已经尝试在 fbAsyncInit 代码中以及在初始化完成后触发的回调中执行此操作,并且在这两种情况下, api('/me'... 调用仅在 getLoginStatus 块中有效。
在这两种情况下,我只能让 api('/me' 在 getLoginStatus() 块内工作。
注意:我没有遇到用户未连接的任何问题。
FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
console.info("connected");
FB.api('/me', function(response) {
// this works
console.info("Name: "+ response.name + "\nFirst name: "+response.first_name+"");
});
} else if (response.status === 'not_authorized') {
console.info("bad");
}
});
FB.api('/me', function(response) {
// response.name == 'undefined'
console.info("Name: "+ response.name + "\nFirst name: "+response.first_name+"");
});