尽管有适当的权限,但无法使用Facebook Graph API阅读商业页面消息

时间:2016-10-18 16:55:15

标签: facebook api facebook-graph-api permissions

上周我向Facebook申请了一个应用评论,该评论已成功授予我许可请求" read_page_mailboxes"我的申请用户的许可。

我现在有一个扩展访问令牌,根据Graph Explorer工具的属性:

  

App {app_id}:SAM :. Thinkka
  用户{用户名}:James Hartnoll
  有效:True Scopes read_page_mailboxes,manage_pages,publish_pages,business_management,public_profile

我正在尝试使用以下网址阅读商家页面的对话:

  

https://graph.facebook.com/v2.7/[Page_Id]/conversations?fields=can_reply,id,unread_count,updated_time,subject,snippet,link&access_token=[access_token]

但是,当我提出请求时,回复是:

{
   "error": {
      "message": "(#298) Requires extended permission: read_mailbox",
      "type": "OAuthException",
      "code": 298,
      "fbtrace_id": "FEHvo/6+z39"
   }
}

现在根据Facebook文档,这里: https://developers.facebook.com/docs/graph-api/reference/v2.7/page/conversations

我拥有所需的所有权限(即read_page_mailboxes)。

我在Stack Overflow上做了一些研究和this question(不是我的),总结得很清楚我在做什么。

一个答案建议尝试使用https://graph.facebook.com/v2.7/me/conversations ....但这导致相同的错误,另一个答案表明read_page_mailbox需要批准。

该许可已被批准,请参阅此问题的开头!

Facebook更改日志:https://developers.facebook.com/docs/apps/changelog#v2_4

告诉我read_mailbox已被弃用,并且进一步阅读该权限,似乎根据App Review请求无论如何都不会授予该权限,无论如何该权限都不适用于Web应用程序。

所以......我被困了?!我拥有根据文档要求拥有的所有权限,我的令牌有效且我的" GET"请求是正确的,但我需要一年前弃用的权限?!

我也已将此消息发送给Facebook,但它需要几天的时间才能回复,这让我感到恼火,因为这个应该显然正常工作!

这里的任何人都有这方面的经验/解决方案吗?

**注意:**为了清晰起见,我正在关注商业页面消息,而不是个人消息。

1 个答案:

答案 0 :(得分:1)

您没有使用页面访问令牌来请求,而是使用用户访问令牌。您需要首先通过GET / me / accounts获取页面访问令牌,或访问getting page access token以获取更多详细信息。 获得此令牌后,您可以使用PHP中的以下方法阅读页面对话: $ pagemessages = file_get_contents('https://graph.facebook.com/me/conversations?access_token= {page-access-token}'); 后续代码var_dump($ pagemessages); 或者只是使用GET请求到上面的链接。

谢谢!