我正在尝试读取 Facebook 页面的收件箱和发件箱。我的第一个方法是尝试直接访问 page
节点的收件箱。下面的 URI 表明了我如何尝试获取它:
/{page-id}/inbox
这是错误消息:
You can only access the \"inbox\" connection for the current user.
然后我尝试按照某些地方的建议访问对话
和线程
边缘,如下所示:
/{page-id}/conversations
/{page-id}/threads
两个 URI 都会产生以下错误:
(#298) You must be a developer of the application
我根本不明白哪里出了问题? Facebook 收到了一些与“#(298)”相关的错误报告,这些错误是几个月前报告的,但我不敢相信它到目前为止还没有得到修复。
欢迎任何替代方法。
最佳答案
如果您使用用户访问 token 而不是页面访问 token ,则会出现此问题。
我是在 Facebook Graph API Explorer 中这样做的我以为我正在使用页面访问 token ,但事实并非如此。当我从 API Explorer 运行 {page-id}/conversations?access_token={page_access_token}
时,它的访问 token 中有 {user_access_token}
em> 字段位于顶部。这是在资源管理器发送的实际请求中发送的(如 Chrome 的开发工具中所示)。即,API Explorer 忽略了我输入的 {page_access_token}
并使用了访问 token 字段中的值。
清除访问 token 字段或在该字段中输入{page_access_token}
会导致发送预期的{page_access_token}
。在浏览器和 API Explorer 中执行一些步骤向我展示了方法。
以下是解决问题的步骤:
获取用户访问 token :使用
manage_pages
和read_page_mailboxes
权限*,方法是从 API Explorer 中单击获取访问 token 并选择指定的权限或访问下面的 URL。https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&request_type=token&scope=manage_pages,read_page_mailboxes
获取页面访问 token :通过从 API Explorer 运行
/me/accounts
或查看下面的 URL。https://graph.facebook.com/v2.0/me/accounts?method=GET&format=json&suppress_http_code=1&access_token={user-access-token}
获取对话:使用上述步骤中的页面访问 token (如果使用 API Explorer,则将其粘贴到访问 token 字段中)来获取对话* * 通过运行
/{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
权限不是必需的,这与我在上面的评论中所说的相反。实际上,错误消息不正确,尝试使用用户访问 token 访问页面边缘会错误地给出用户访问错误,而不是无效页面访问 token 错误。
** 用户必须是 Facebook 页面的管理员才能访问其对话。
关于facebook - 尝试读取 Facebook 页面的消息时出现 OAuthErrors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12800164/