1

我一直在使用 JavaScript SDK 使用 Facebook OAuth 2.0。我看到 Facebook 最近更改了“无限”过期时间访问令牌功能,现在获得了一个用于离线访问的访问令牌,最长有效期为 60 天。

我尝试了以下代码:

FB.init({appId: 'XXXXXXXXXXXX', oauth: true , secret: 'XXXXXXXXXXXXXXXXXXXXXXXXX' });
// the real values of appId and secret are not displayed for obv reasons
FB.login(function(response) 
{
  if(response.authResponse){

}
else{
 console.log('User cancelled login or did not fully authorize.');
}
}, {scope: 'read_stream,publish_stream,offline_access'});

在我的回复中:response.authResponse,我收到一个访问令牌和一个值:expiresIn,它或多或少在 6000 左右。我不明白这个值的含义。如果我将它除以 3600,我会说它给了我大约 2 小时的有效期,这意味着这不是具有无限过期时间的访问令牌。有没有办法可以请求具有更长有效期的访问令牌?请让我知道我做错了什么。

4

1 回答 1

0

我认为这个政策变化现在令人困惑,因为他们今天正在改变这个。在新政策适用之前,您可能需要按照此处
所述更改应用配置。 我想您必须检查您的“弃用offline_access”设置。 只要未给出offline_access且未应用新策略,access_token通常会在2小时内到期。

于 2012-05-02T15:52:52.440 回答