2

我正在尝试阅读 Facebook 页面的收件箱和发件箱。我的第一种方法是尝试直接访问page节点的收件箱。下面的 URI 指示我如何尝试获取它:

/{page-id}/inbox

这是错误消息:

您只能访问当前用户的“收件箱”连接。

然后我尝试按照某些地方的建议访问conversationsthreads边缘,例如:

/{page-id}/conversations

/{page-id}/threads

两个 URI 都会产生以下错误:

(#298) 你必须是应用程序的开发者

我完全不知道出了什么问题?Facebook 收到了一些与“#(298)”相关的错误报告,这些错误是几个月前报告的,但我不敢相信它到目前为止还没有得到修复。

欢迎任何替代方法。

4

1 回答 1

3

如果您使用用户访问令牌而不是页面访问令牌,则会出现此问题。

我在Facebook Graph API Explorer中执行此操作,我以为我正在使用页面访问令牌,但我没有。当我{page-id}/conversations?access_token={page_access_token}从 API Explorer 运行时,它在顶部{user_access_token}Access Token字段中。这是在资源管理器发送的实际请求中发送的(如 Chrome 的开发工具中所示)。即,API Explorer 忽略了{page_access_token}我输入的内容,并使用了Access Token字段中的值。

清除访问令牌字段或{page_access_token}在该字段中输入会导致{page_access_token}发送预期的内容。在浏览器和 API Explorer 中执行一些步骤向我展示了方法。

这些是解决问题的步骤:

  1. 通过单击 API Explorer 中的获取访问令牌并选择指定的权限或访问下面的 URL,获取用户访问令牌:具有manage_pagesread_page_mailboxes权限* 。

    https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&request_type=token&scope=manage_pages,read_page_mailboxes
    
  2. 获取页面访问令牌:通过/me/accounts从 API Explorer 运行或访问下面的 URL。

    https://graph.facebook.com/v2.0/me/accounts?method=GET&format=json&suppress_http_code=1&access_token={user-access-token}
    
  3. 获取对话:使用上述步骤中的页面访问令牌(如果使用 API Explorer,请将其粘贴到访问令牌/{page-id}/conversations字段中)通过运行或访问下面的 URL来获取对话** 。

    https://graph.facebook.com/v2.0/{page-id}/conversations?method=GET&format=json&suppress_http_code=1&access_token={page-access-token}
    

*read_mailbox不需要许可,这与我在上面的评论中所说的相反。实际上,错误消息是不正确的,尝试使用用户访问令牌不正确地访问页面边缘会导致用户访问错误,而不是无效的页面访问令牌错误。

** 用户必须是 Facebook 页面的管理员才能访问其对话。

于 2014-05-09T17:36:12.120 回答