1

有人可以解释为什么 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+"");
});                                
4

0 回答 0