如果您使用用户访问令牌而不是页面访问令牌,则会出现此问题。
我在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 中执行一些步骤向我展示了方法。
这些是解决问题的步骤:
通过单击 API Explorer 中的获取访问令牌并选择指定的权限或访问下面的 URL,获取用户访问令牌:具有manage_pages
和read_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
获取页面访问令牌:通过/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}
获取对话:使用上述步骤中的页面访问令牌(如果使用 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 页面的管理员才能访问其对话。