2014-09-25 70 views
0

我正在做一个非常简单的Facebook API请求。我只是在运行:FB.getAccessToken()返回null直到我调用FB.getLoginStatus()一次后

FB.getAccessToken(); 

...并且它每次都返回空值。那一刻我运行:

FB.getLoginStatus(); 

...然后FB.getAccessToken()立即开始工作,每一次返回一个访问令牌。

有没有代码片段发布,因为即使我只是从JS控制台(这也意味着它不能是异步问题)发生这种情况发生。

回答

2

FB.getLoginStatus刷新令牌,所以FB.getAccessToken在调用它之后有效。虽然没有用例会遇到这种问题,但您应该始终在页面加载时使用FB.getLoginStatus - 当然,在FB.init之后。

顺便说一句,我从来没有听说过FB.getAccessToken,我也没有在文档中找到它。这是你应该怎么弄的访问令牌(如果你真的需要它):

FB.getLoginStatus(function (response) { 
    if (response.status === 'connected') { 
     var accessToken = response.authResponse.accessToken; 
    } 
}); 

来源:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus

+0

哦,那是完美的。可能FB.getAccessToken可能会被弃用,但它肯定仍然有效。我主要是在寻找一种方法来避免两个独立的API调用,一个接一个地执行,而且这样做。谢谢! – 2014-09-25 17:35:52