【问题标题】:Facebook access token with "never-expire"带有“永不过期”的 Facebook 访问令牌
【发布时间】:2015-12-27 04:21:45
【问题描述】:

我正在尝试获取永不过期的 Facebook 访问令牌,但我无法做到。这是我的步骤:

1) 使用 Facebook 图形资源管理器生成具有所需权限的短期访问令牌(此令牌有效期为 1 小时左右)

2) 通过手动 GET 请求获取长寿令牌(2 个月到期时间) https://graph.facebook.com/oauth/access_token? grant_type=fb_exchange_token& client_id=[app-client-id]&client_secret=[app-secret-id]& fb_exchange_token=[short-live-access-token]

3) 这个到 https://graph.facebook.com/[user-id]?fields=access_token&access_token=[long-live-access-token]

但最后一步显示错误:

{
  "error": {
    "message": "(#100) Tried accessing nonexisting field (access_token) on node type (User)",
    "type": "OAuthException",
    "code": 100,
    "fbtrace_id": "DpmM6CyzoAt"
  }
}

我在网上的某个地方发现了最后一步,所以我认为 FB 必须改变一些东西,我已经阅读了他们的 api 文档,但我无法弄清楚他们通过什么资源来执行第 3 步。

有人能解释一下如何获得永不过期的用户访问令牌吗?

谢谢

【问题讨论】:

    标签: facebook access-token


    【解决方案1】:

    用户令牌永远不会永远有效,正如您已经发现的那样,延长的令牌仅在 60 天内有效。我假设你想获得一个扩展页面令牌,这就是你如何获得一个:

    https://graph.facebook.com/[page-id]?fields=access_token&access_token=[long-live-user-token]
    

    基本上,您只需要使用页面 ID,它不适用于用户 ID。

    【讨论】:

    • 感谢您的回复!我究竟如何获得页面ID?当我说 [user-id] 时,我指的是我的 Facebook 页面 id (www.facebook.com/[numbers..]
    • 我很确定您尝试使用用户配置文件,这可以解释错误消息。你的页面链接是什么?
    • 我对什么是页面 id 有点困惑(我以为是我的用户页面 id)但我现在明白了。我创建了一个 Facebook 页面并获取了它的 ID。这使得电话工作,我现在有一个永不过期的令牌谢谢!
    • 访问您的 Facebook 页面 ID:打开您的 Facebook 页面。单击关于选项卡。向下滚动到页面信息部分的底部。在 Facebook 主页 ID 旁边,您可以找到您的主页 ID。
    猜你喜欢
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 2013-01-11
    • 2017-08-06
    • 2018-04-26
    相关资源
    最近更新 更多