延长60天的Facebook令牌

时间:2015-01-08 08:00:52

标签: facebook facebook-php-sdk facebook-access-token

我使用Hybridauth与Facebook联系。一切都运作得很好; - )

我收到了一个令牌,当我在https://developers.facebook.com/tools/debug/查看时,我发现它有两个月的到期时间。

经过几天,例如50天,我发现令牌确实会在10天后到期。

我尝试使用以下方法记录(并在其他StackOverflow问题中描述)扩展:

https://graph.facebook.com/oauth/access_token?             
client_id=APP_ID&
client_secret=APP_SECRET&
grant_type=fb_exchange_token&
fb_exchange_token=EXISTING_ACCESS_TOKEN

然后我收到另一个令牌,但如果我在"工具调试中检查新令牌"页面,它返回相同的到期时间(示例中为10天)......实际上,在10天内,旧令牌和新令牌已过期。

然后......我怎样才能获得有效的扩展令牌?

编辑提出具体问题

在我的情况下,用户将他们的Facebook连接到他们的帐户,然后我可以从他们的时间线获得每天新照片,显然我不希望他们连接(或点击任何按钮)每60天更新一次。我想这可以永久自动化(因为其他网站没有更多的offline_access权限)。

如何让用户将他们的FB帐户连接到我的网站,然后我有办法在他的时间轴永久中获取新内容?

1 个答案:

答案 0 :(得分:4)

您必须再次将用户重定向到登录对话框网址,如https://developers.facebook.com/docs/facebook-login/access-tokens/#expiredtokens

中所述
  

如果访问令牌无效,解决方案是让该人再次登录,此时您将再次代表他们进行API调用。您的应用用于新用户的登录流程应确定您需要采用哪种方法。

如果您没有请求更多权限,通常在重定向时不需要用户操作。