【问题标题】:How to extract Facebook Access token Expiration Info如何提取 Facebook 访问令牌过期信息
【发布时间】:2012-02-10 21:34:27
【问题描述】:

有没有办法获取访问令牌的到期日期,我需要这个,所以我可以刷新我的会话,我也想要这种方式,这样我就可以避免在通过 PHP cURL 获取时查找 facebook 用户数据。

也在这个链接上 https://developers.facebook.com/tools/access_token/ 如果我在我的一个自定义应用程序中单击 DEBUG 按钮,我可以看到此信息(例如)

App ID: 23131XX0000123 : My Custom App
User ID: XX99858XX : Mario Bro
Issued: XX11111XX : 2:00 pm Feb 10 2012
Expires: XX11111XX : 3:00 pm Feb 10 2012
Valid:  True
Origin: Unknown
Scopes: email user_likes

它会显示该应用程序的到期日期。有没有办法在 PHP SDK 或图形 URL 命令中获取该信息?

【问题讨论】:

  • 当您获得令牌时,它也会告诉您何时过期。因此,您可以从一开始就获取它,保存它并计算它是否在任何给定时刻仍然可用。
  • 您好,那么对于回复,我如何使用 facebook PHP SDK 提取它?抱歉,如果我不明白你的意思,但我不确定在哪里看,开发人员文档中是否有可能的链接,以便我可以研究那部分?或解释这部分的可能链接?

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


【解决方案1】:

更新:
下面的代码不再有效(请参阅错误报告PHP SDK getSignedRequest does not include "expires" field)并且无法使用 PHP-SDK 获取该数据。

您可以使用Debug tool 手动发现您的access_token 何时过期。

你可以从signed_request获取access_token的过期时间:

$facebook = new Facebook(array(
  'appId'=>APP_ID,
  'secret'=>APP_SECRET
));
$signedRequest = $facebook->getSignedRequest();
$expiresDate = date('c', $signedRequest['expires']);
print_r($expiresDate);

【讨论】:

  • @phirschybar,示例代码中存在错误。现在试试吧,如果你仍然没有expires,那么可能你根本没有signed_request,在这种情况下尝试print_r($signedRequest) 找出答案。
  • 我有同样的问题,expire 字段丢失。
  • developers.facebook.com/bugs/467866233242810 Bug 存在 6 个月...哦,天哪!
【解决方案2】:

有一个 Graph API 端点(可能已在此问题之后发布),可为您提供过期时间和其他有用信息。有关详细信息,请参阅Debugging Access Tokens and Handling Errors 文档。

【讨论】:

  • 虽然,所有应用程序都应支持随时使令牌失效(用户未经授权等),并且不应依赖使用反向渠道获取此信息。
  • 精确链接如下:developers.facebook.com/docs/facebook-login/access-tokens#debug,API端点为GET /debug_token?input_token={input-token}&access_token={access-token}
猜你喜欢
  • 1970-01-01
  • 2015-07-12
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-19
  • 1970-01-01
  • 2011-10-06
相关资源
最近更新 更多