【问题标题】:Can I publish to pages with an app access_token我可以使用应用程序 access_token 发布到页面吗
【发布时间】:2011-12-27 10:18:01
【问题描述】:

this other question 中所述,如果用户授予 publish_stream 权限,我可以使用应用程序 access_token 发布到该用户的墙。我测试了它并且它有效。但是我无法使用应用程序 access_token 发布到用户的页面!我错过了什么吗?

现在我使用 /me/accounts/ 连接来获取页面的 access_token,并使用它来发布。但这对我和用户来说都是一个非常头疼的问题,因为这些令牌经常过期(当用户更改密码时,...等),每次发生这种情况时,发布都会失败,我需要给用户发送电子邮件以再次登录,所以我可以为页面检索新的 access_token。这是一种糟糕的用户体验,我正在努力寻找解决方法。应用程序令牌适用于向用户发布,这很棒,但我找不到让它适用于页面的方法。有什么建议吗?

编辑: 为了进一步澄清,我目前请求 manage_pages 和 offline_access 权限,然后获取每个页面的 access_token 并使用它发布到它。这样可行。主要问题是令牌过期,即使有 offline_access 权限。令牌过期的最常见原因是用户更改了密码。这是我在发布到 Facebook 页面时经常遇到的一个常见错误。

Facebook 错误。类型:OAuthException,消息:'错误验证 访问令牌:会话与当前存储的会话不匹配。这可能 是因为用户从会话开始就更改了密码 已创建或 Facebook 出于安全原因更改了会话。'

为了处理这个问题,我向用户发送电子邮件并要求他们再次访问我们的应用程序,当他们访问时,我会获取一组新的 access_token 来使用。但这是有问题的,因为用户对错误发生的原因感到困惑并责怪我们,并且一些用户不打开他们的电子邮件,因此问题没有得到解决,然后当他们发现我们的应用程序停止时他们很生气几周前没有他们要求停止。

这就是为什么我希望我可以使用应用程序 access_token 发布以避免这些问题。由于它适用于用户配置文件,我希望它也适用于页面。但到目前为止还没有运气,除非我遗漏了一些明显的东西。

【问题讨论】:

  • 好的。你试过offline_access 权限吗?

标签: facebook facebook-graph-api facebook-page


【解决方案1】:

您所描述的内容过去有效 - 去年我们都能够使用应用访问令牌成功地发布到粉丝页面墙上。事实上,对于我们的一些用户,我认为它仍然有效。不过,我认为其他两个答案是正确的,这不再是发布到页面的方式(参见“页面登录”here

也就是说,您应该能够存储页面的访问令牌,以免自己重新查询用户的关联帐户。

不幸的是,页面的访问令牌将遭受与用户相同的脆弱性,根据此处的答案:Facebook Page Access Tokens - Do these expire?。当向您提供访问令牌的用户更改密码时,页面访问令牌将过期。

【讨论】:

    【解决方案2】:

    要发布到页面,还有一个额外的步骤,您可以使用他们的令牌来获取他们的页面列表。每个页面都有自己的令牌,使用该令牌发布到页面。请记住,在设置原始令牌时,您需要指定您需要访问页面。

    【讨论】:

    • 这就是我正在做的事情(如问题中所述),这也是我试图停止做的事情并找到更好的方法。
    • 您是否在尝试发布之前获取页面的令牌?
    • 我只是不确定,因为我们一直在 Facebook 上使用 oath,而且我们的令牌从未过期。您的代币是永久代币吗?
    • 谢谢。我们要求获得 manage_pages 和 offline_access 权限,但不幸的是,这并不能保证令牌不会过期。我在问题中添加了更多细节以进行澄清。
    • 我们保留常规的 oauth otken 并在我们尝试发布内容时使用它来获取新的页面访问令牌。这听起来与您的过程不同。听起来您在用户授权您的应用时获得了页面令牌。
    【解决方案3】:

    我的应用完全符合您的要求。

    1. 我向用户请求 manage_pages 和 offline_access 权限。
    2. 我存储了用户的 access_token。
    3. 我询问用户他们希望将流项目发布到哪个页面(由我/帐户确定)以及何时发布。
    4. 稍后,当需要发布到页面的提要时,我从数据库、pageid 和消息中获取用户的 access_token。
    5. 使用该用户的访问令牌,我查询我/帐户并获取该帐户的最新访问令牌(又名页面)
    6. 使用该页面的访问令牌,我/feed(或者是我/posts...目前远离我的代码库)发布流项目。

    【讨论】:

    • 但是当用户access_token在修改密码时失效,你怎么处理呢?因为这是我要解决的主要问题。
    • 我的应用也有同样的潜在问题。您的用户在更新密码后必须返回您的应用并获取新令牌。我建议当您的代码发现令牌无效时,向用户发送电子邮件以返回您的应用程序。实际上,Facebook 应该在更改密码时警告用户,他们授予的永不过期令牌需要重新授予。您可以让您公司的业务关系代表联系 Facebook,看看 Facebook 是否可以添加类似的内容。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2011-08-13
    • 2011-07-31
    • 1970-01-01
    • 2019-12-26
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多