【问题标题】:How can I get a permanent access token to post to a Facebook page that I own?如何获得永久访问令牌以发布到我拥有的 Facebook 页面?
【发布时间】:2023-03-13 08:48:01
【问题描述】:

我是 Facebook 主页的管理员。我正在构建一个网络应用程序,在某些情况下,它会在 Facebook 上作为该主页发布。

对于大多数 API,我只需获取一个 API 密钥,并在从我的应用程序连接到 API 时提供该密钥。但 Facebook 需要访问令牌而不是 API 密钥。 (具体来说,在这种情况下,它需要一个“页面访问令牌”。)

我正在尝试弄清楚如何获取尽可能永久的页面访问令牌。

为了获得一个不会过期的令牌,在跳过了一堆深奥的、无证的箍(参见herehere)之后,我有了这个工作。当我通过Facebook's Access Token Debugger 运行令牌时,“过期”字段显示为“从不”。世界上一切都很好。

但是,第二天,我的令牌无论如何都失效了。访问令牌调试器和我的应用程序对 Facebook 的 PHP SDK 的调用都开始返回此错误:

验证访问令牌时出错:会话与当前存储的会话不匹配。这可能是因为用户在创建会话后更改了密码,或者 Facebook 出于安全原因更改了会话。

似乎a variety of reasons 的令牌可能会失效(但这篇文章已有 5 年历史了,所以谁知道——Facebook 每两周更改一次)。我没有更改密码。 (不过,我可能已经退出了 Facebook。)Facebook 没有具体说明为什么这个特定的令牌可能会变得无效。

我还看到了一些对名为offline_access 的权限的引用,但Facebook seems to have removed this

我想我的问题是双重的:

  1. 总的来说,我发现 Facebook 令牌身份验证在从服务器调用 Facebook API 时非常脆弱。令牌系统的设计似乎主要是为了允许其他用户授予(或撤销)对我的应用程序的各种帐户访问权限。但这不是我正在做的——我试图获得一个令牌,让 发布到 拥有的页面。在这种情况下,Facebook 激进地使代币失效成为一项严重的责任。如果我的访问令牌(以及我的 Facebook 集成)可能随时随机停止工作,我无法启动我的应用程序,这需要我生成新令牌并更新应用程序。 这似乎很荒谬。为了我的目的,是否有其他方法可以对 Facebook 进行身份验证?

  2. 如果页面访问令牌实际上是向 Facebook 验证我的应用以作为我的页面发布的最佳方式:我如何确保我的令牌不会自发失效?

我讨厌为 Facebook 开发:/感谢您提供的任何见解。

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案1】:

    扩展页面令牌永久有效。仅当您更改密码或更改应用程序的应用程序密码时,它们才会失效。它真的没有魔法,检查令牌是否仍然有效显然不是一个坏主意,但这取决于你。例如,您可以在使用 Token 出现错误时向自己发送一封自动电子邮件,以便您刷新它。但是,如果您更改密码,它真的会发生。

    链接:

    【讨论】:

    • 感谢您的链接 - 但是,不,扩展页面令牌显然 不是 永远有效,考虑到我在生成它的第二天就失效了。 (而且,如上所述,我没有更改我的密码或应用密码。)
    • 那么它不是扩展的。我多年来一直在使用它们,没有任何问题。
    • 正如我所说,当我通过 Facebook 的访问令牌调试器运行我的令牌时,“过期”字段读取(并且仍然读取)“从不”。这不意味着它是一个扩展令牌吗?可能是我误会了。
    • 嗯,一般来说,是的。但是那个调试器有很多错误,我经常有那个“从不”的字段,它不是一个扩展的。确保您确实按照链接中的信息创建了一个。如果不是延长的,2小时后失效。
    • 答案没有错,帮助我创建了持久的令牌 - ty
    猜你喜欢
    • 2023-03-30
    • 2012-09-05
    • 2013-06-16
    • 1970-01-01
    • 2012-02-13
    • 2012-08-03
    • 2013-02-06
    相关资源
    最近更新 更多