7

当我们在 google api 上执行 oauth2 时,我们会得到一个访问令牌和一个刷新令牌。假设我正在编写一个服务,并且我想定期轮询更改,我可以在每次当前访问令牌失效时使用刷新令牌来获取新的访问令牌。这称为离线访问

有没有办法在 facebook 上做同样的事情?有没有类似于google api的离线访问版本。

谢谢。

4

2 回答 2

14

对于离线访问,您需要在新的访问令牌过期之前将您的短期访问令牌换成新的访问令牌。Facebook 具有单一类型的访问令牌(无刷新令牌)。即将过期的访问令牌应该为您获取新的访问令牌。

使用 Graph API 端点手动扩展令牌 ::

GET /oauth/access_token?  
    grant_type=fb_exchange_token&           
    client_id={app-id}&
    client_secret={app-secret}&
    fb_exchange_token={short-lived-token}

从这里引用 FB 的文档::

应用程序无法将过期的短期令牌交换为长期令牌。上面的流程仅适用于仍然有效的短期令牌。一旦它们过期,您的应用程序必须再次通过登录流程向用户发送。

请阅读Expiration and Extending Tokens我提到的文档链接部分以进行进一步说明。

于 2013-05-15T14:18:59.603 回答
3

你可以从这里检查你的令牌的有效性,根据我的令牌它永远不会过期

于 2019-12-10T08:19:15.290 回答