我有这个代码:
$facebook->api("/oauth/access_token?grant_type=fb_exchange_token&client_id=".$facebook->getAppId()."&client_secret=".$facebook->getAppSecret()."&fb_exchange_token=".$user->getFacebookAccessToken());
它不会抛出任何异常,但会返回 null。我正在尝试将短暂的 Facebook 用户访问令牌扩展为长期存在的 Facebook 用户访问令牌。但是,在我生成了一个新令牌并在新令牌仍然存在时调用此请求后,我等待了几个小时并启动了一个浏览器,但我没有使用我的 Facebook 帐户登录。然后我用一个测试用户登录(到应用程序,而不是 Facebook),但不幸的是它把我引导到 Facebook 登录,这意味着 Facebook 用户访问令牌以某种方式无效。
我正在根据此处找到的文档工作。
那么,有人能告诉我我应该如何发送请求,以便 Facebook 真正延长令牌的生命周期吗?此外,我不确定如何确定是否已成功延长 Facebook 用户访问令牌的生命周期。(至少可以说,我不是 Facebook 粉丝,而且我也是 Facebook API 的新手)。
多谢你们。
编辑:我已阅读这篇文章并将 setExtendedAccessToken 方法复制到我的类中,并进行了一些修改以支持我的逻辑。现在尝试延长用户 Facebook 访问令牌生命周期的代码如下:
$facebook->setExtendedAccessToken($user->getFacebookAccessToken());
现在它返回一个包含两个元素的数组,即令牌和到期日期。到期日为“5174078”。我相信我在解决这个问题的正确轨道上,是吗?