【问题标题】:Getting "(#100) Pages Public Content Access requires either app secret proof or an app token" issue when calling Facebook API?调用 Facebook API 时出现“(#100)页面公共内容访问需要应用程序秘密证明或应用程序令牌”问题?
【发布时间】:2020-03-11 13:12:35
【问题描述】:

我正在开发一个与用户 Facebook 帐户同步并获取 Facebook 页面信息的应用程序。最初,应用程序要求使用 Facebook 登录并获取页面列表。获取页面后,我调用 API 来获取与每个页面关联的帖子。获得帖子详细信息后,我将调用洞察 API 以获取对每个帖子的洞察。 此流程在开发模式下工作正常,但当我切换到实时模式时,我收到以下错误

      Client error: `GET https://graph.facebook.com/v4.0/100575944711552/feed` resulted in a `400 Bad Request` response:{"error":{"message":"(#100) Pages Public Content Access requires either app secret proof or an app token","type":"OAuthE (truncated...)
 {"userId":1,"email":"superuser@corals.io","exception":"[object] (GuzzleHttp\\Exception\\ClientException(code: 400): Client error: `GET https://graph.facebook.com/v4.0/100575944711552/feed` resulted in a `400 Bad Request` response:
{\"error\":{\"message\":\"(#100) Pages Public Content Access requires either app secret proof or an app token\",\"type\":\"OAuthE (truncated...)

根据我观察到的详细信息,我在使用时遇到此错误,

GET /v5.0/{page-id}/feed HTTP/1.1
Host: graph.facebook.com

这个端点。我目前有 2 个权限被批准,

  1. manage_pages 2. read_insights 并且应用审查团队拒绝了 2 个权限,称请求无效,对于这个用例,我们不需要这些权限, 1.Page Mentions 2.user_posts

谁能帮我理解具体的问题是什么?

【问题讨论】:

  • 在将应用程序置于实时模式之后,您是否真的以页面管理员用户的身份授予权限?您使用的是什么类型的令牌?
  • 是的,页面有管理员权限。我根据要求使用了两种类型的令牌页面访问令牌和用户访问令牌,但是对于页面我们收到错误我正在使用用户访问令牌。
  • 您应该使用页面令牌,作为页面发布。
  • 某些 API 调用需要 appsecret_proof 以及所有相关权限。请参阅他们的 Securing Requests 文档。

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


【解决方案1】:

我遇到了同样的问题。再次对他们该死的变化做出反应(manage_pages 不再是一件事了)。我只有pages_manage_metadata 而不是pages_read_engagement 来实际阅读页面上的内容... -.-

【讨论】:

  • 我不敢相信这不在官方文档中
  • 请注意,如果您还希望 /feed 包含用户在页面上生成的帖子,您还需要批准pages_read_user_content
【解决方案2】:

我也出现这个错误。对我来说,我发现自从 graph api v5.0 以来,请求发生了变化。 docs 说:

页面公共内容访问

此更改适用于 v5.0+

向需要页面公共内容访问功能的端点发出的请求必须使用应用访问令牌或包含应用的应用秘密。但是,如果调用应用已被授予 manage_pages 权限,则不需要应用访问令牌或应用机密。

如果您只检索公共数据。您可以使用快速修复的应用访问令牌请求。但如果你想得到更多。您需要关注文档更新。 :)

【讨论】:

  • 你能指导我在哪里添加访问令牌或应用程序密码。同时验证 facebook 权限,例如权限:[.publicProfile]。管理页面不可用
  • 你可以关注这个https://developers.facebook.com/docs/graph-api/securing-requests添加参数appsecret_proof。如果只有public可以使用app token。关注这个文档https://developers.facebook.com/docs/facebook-login/access-tokens#apptokens
【解决方案3】:

我已经解决了这个问题。一切都很好,但唯一的问题是在使用 facebook 登录进行身份验证时,我需要在范围部分包含“manage_page”权限。

【讨论】:

  • 你的意思是manage_pages吗?它们不同吗?你认为这是 Facebook 的错误吗?
  • 不,我的意思是即使我们的帐户获得了 facebook 的 manage_page 权限,我们也需要在 facebook 登录身份验证按钮的 scope 部分中包含 manage_page 权限。然后只有我们可以访问页面见解和帖子。
猜你喜欢
  • 2012-05-28
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
  • 1970-01-01
  • 1970-01-01
  • 2011-08-10
  • 1970-01-01
相关资源
最近更新 更多