Facebook图形API在交换长期令牌时是否已停止返回?

时间:2015-04-22 15:14:44

标签: facebook-graph-api facebook-access-token

我使用Facebook PHP SDK获取用户的访问令牌。代码是从这里复制的https://developers.facebook.com/docs/php/gettingstarted/4.0.0 它们应该如下所示:

$helper = new FacebookRedirectLoginHelper('your redirect URL here');
$loginUrl = $helper->getLoginUrl();
// Use the login url on a link or button to redirect to Facebook for authentication

然后在重定向动作中:

$helper = new FacebookRedirectLoginHelper();
try {
  $session = $helper->getSessionFromRedirect();
  var_dump($session);
} catch(FacebookRequestException $ex) {
  // When Facebook returns an error
} catch(\Exception $ex) {
  // When validation fails or other local issues
}

几周前,我可以看到API返回的expires值。但现在,只返回access_token。 Facebook改变了API输出吗?

2 个答案:

答案 0 :(得分:0)

上面的代码看起来不错,但是,

令牌到期Sol: Facebook已将其终端重定向网址更改为长期令牌,

现在终点是: https://graph.facebook.com/oauth/client_code?access_token=...&client_secret=...&redirect_uri=...&client_id= ...

一般来说,facebook bydefault提供短期实时访问令牌,如果你想要一个长寿命令牌访问,它可以在2小时后到期,它可以使用60天,而不是你可以使用以下功能。 link for ref

$ longLivedSession = $ facebookSession-> getLongLivedSession();

echo $ longLivedSession-> getToken();

查看以下链接,其中突出显示与万岁令牌相关的更多信息。 https://developers.facebook.com/docs/facebook-login/access-tokens#extending

http://www.devils-heaven.com/facebook-access-tokens/

答案 1 :(得分:0)

更新:我了解到扩展令牌是使用一个跨越远程访问范围的帐户创建的。我全力支持并删除了该访问权限,令牌延长了60天。

似乎扩展令牌会返回0而不是过期日期,因为它永不过期。扩展令牌开始破坏我的应用程序,因为它返回0.它用于返回大约60天的时间戳。我将扩展令牌带到了Open Graph Debugger,https://developers.facebook.com/tools/debug/ Expires = Never。

的值

任何人都可以确认这一点或指向更新的文档。文档仍然说60天。