【问题标题】:How to query the expiration time of Facebook access-token?如何查询Facebook access-token的过期时间?
【发布时间】:2012-05-27 14:21:26
【问题描述】:

我需要知道 Facebook 访问令牌的到期时间。

我已经知道以下方法:

  1. 延长令牌的生命周期。响应将包含令牌过期时间。但是这种方法需要我们并不总是拥有的应用程序机密。

  2. 使用 Facebook 令牌调试器 (https://developers.facebook.com/tools/debug)。但这需要我们的代码来解析这个html文件,看起来不太优雅。

那么有没有可能使用graph api/fql来查询token的过期时间? 我在谷歌上搜索过,但没有得到任何答案。

【问题讨论】:

  • “但是这种方法需要我们并不总是拥有的应用程序机密。” - - 这怎么可能?如果是您的应用程序 - 您始终拥有应用程序密码
  • 所以你有访问令牌但没有应用程序秘密......怎么会?
  • 当您获得访问令牌时,您也总是会获得到期时间,但应用程序令牌除外。因此,只需将 expire 参数保存在访问令牌旁边,您就会知道它何时过期。
  • @zerkms 我们的软件从其他应用程序获取令牌。因此,这些应用程序可能不会提供他们在获得令牌时获得的伴随过期时间。而且他们不向我们提供应用程序机密。
  • @SarveshKumarSingh 这些不是我们自己的应用程序...

标签: facebook token


【解决方案1】:

您需要查询以下端点并检查响应:

graph.facebook.com/debug_token?
             input_token={token-to-inspect}
             &access_token={app-token-or-admin-token}

如果管理员令牌错误,则 fb 返回

{"error":{"message":"Invalid OAuth access token.","type":"OAuthException","code":190}}

如果 input_token 错误,则 fb 返回

{"data":{"error":{"message":"Invalid OAuth access token.","code":190},"is_valid":false}}

    /* successful response
     * {
            "data": {
            "app_id": APPID,
            "is_valid": true,
            "application": "APPNAME",
            "user_id": UID,
            "issued_at": 1371671725,
            "expires_at": 0,
            "scopes": ["create_note", "manage_pages", "photo_upload", "publish_actions", "publish_stream", "share_item", "status_update", "video_upload"]
            }
        }
     */

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-29
    • 2021-04-07
    • 2013-09-13
    • 2018-11-06
    • 1970-01-01
    • 2020-10-23
    • 2012-08-23
    • 2023-03-09
    相关资源
    最近更新 更多