3

当我们在google api上执行oauth2时,我们得到一个访问令牌和一个刷新令牌。假设我正在编写一个服务,并且我想定期轮询更改,那么每次当前访问令牌失效时,我都可以使用刷新令牌来获取新的访问令牌。这叫做offline access在facebook API中刷新令牌和访问令牌

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

谢谢。

+0

不,您只能将用户访问令牌扩展至2个月。除非你正在谈论应用访问令牌。 –

回答

6

对于离线访问,您需要在新的访问令牌到期之前将您的短期访问令牌交换。 Facebook具有单一类型的访问令牌(不刷新令牌)。即将到期的访问令牌应该为您提供新的访问令牌。

手动使用图形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的文档从here延长令牌::

应用程序是无法进行交流过期短期令牌 长命令令牌。上述流程仅适用于仍然有效的短期令牌 。一旦它们到期,您的应用程序必须再次通过登录流程发送用户 。

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

+0

我可以随时申请一个新的Access令牌吗?还有每2分钟? – markzzz

+0

我不明白为什么你不能。该文档说,您可以访问另一个令牌,它不指定何时。尝试先使用提琴手点击端点,您只需5分钟即可获得答案。 :) 祝你好运。 – divyanshm

+0

是的,但也许他们会阻止我!事实上,我不会花时间检查我的令牌是否过期,只是我每次刷新它!此外,我用相同的程序,我可以交换一个长活标记为一个新的长活标记。 – markzzz