我使用此代码获取有效令牌60天
// Set Extended Access Token
$facebook->setExtendedAccessToken();
//get session
$session = $facebook->getAccessToken();
然后我将其存储在数据库中并使用它在用户的墙上发布(* publish_stream *权限)。但是有没有办法续订令牌,我的用户不太可能在这60天内打开应用程序(构建提醒应用程序)。
请提供工作代码或如何使用假人
答案 0 :(得分:2)
不幸的是,facebook没有提供任何刷新访问令牌的方法而没有用户干扰。用户必须重新登录应用程序以获取新的令牌。在这种情况下,您获得的唯一好处是您可以在没有授权对话框的情况下捕获新令牌。
答案 1 :(得分:2)
您无法延长令牌超过60天或在没有用户互动的情况下续订令牌。
但,如果您的用户在60天内有任何机会进入您的应用,该令牌将自动续订,并且可以再过60天。
到期和延长代币
Facebook的官方SDK管理令牌的生命周期。什么时候 使用iOS,Android或我们的JavaScript SDK,SDK将处理制作 确保令牌在到期之前刷新。
使用Facebook SDK的原生移动应用程序将获得长久的使用寿命 获取令牌,大约60天。这些令牌将被刷新 每天一次,当使用您的应用程序的人提出请求时 Facebook的服务器。如果没有请求,则令牌将过期 大约60天后,该人将不得不通过登录 再次流动以获得新的令牌。
网络上的访问令牌通常有两个小时的生命周期,但是 将在需要时自动刷新。如果你想使用 访问令牌为更长寿的Web应用程序,尤其是服务器端,您 需要生成一个长期存在的令牌。一般来说是一个长寿的令牌 持续约60天。
另外,在他们说不应该依赖这些生命周期的文档上,因为用户可以撤销权限,更改密码(更改密码将撤销用户已安装的每个应用的每个令牌 )
用户访问令牌有两种形式:短期令牌和 长寿代币。短命代币通常具有约一生的寿命 一两个小时,而长寿代币通常有一生 大约60天。你不应该依赖这些生命周期 同样 - 生命周期可能会在没有警告的情况下发生变化或提前到期。
我引用的所有这些信息都在https://developers.facebook.com/docs/facebook-login/access-tokens/