facebook - 尝试读取 Facebook 页面的消息时出现 OAuthErrors

标签 facebook facebook-graph-api facebook-graph-api-v2.0

我正在尝试读取 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 中执行一些步骤向我展示了方法。

以下是解决问题的步骤:

  1. 获取用户访问 token :使用 manage_pagesread_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
    
  2. 获取页面访问 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}
    
  3. 获取对话:使用上述步骤中的页面访问 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/

相关文章:

php - 在 Facebook 应用程序中用 php 延迟重定向用户

ios - 如何使用 Facebook 个人资料照片填充我的 UITableView

php - $facebook -> getUser() 返回错误值?

facebook-graph-api-v2.0 - 从全局 Facebook id 或用户名中获取 Facebook 应用范围内的用户 id

java - facebook-java-api是否支持应用程序请求

javascript - 如何在应用程序浏览器中强制链接或页面在 facebook 之外打开?

c# - Facebook Graph API 在用户未登录时获取数据

java - 收到 OAuthException : An unexpected error has occurred. 类型的 Facebook 错误响应,请稍后重试您的请求。 (代码 2,子代码为空)

ios - 来自 API 的 Facebook API : How to get the FB login user's unique ID? ID 与 v2.0 中的 'real' 用户 ID 不匹配

webhooks - 使用 Webhooks 从 Facebook 页面帖子获取评论?