我正在尝试阅读Facebook页面的收件箱和发件箱。我的第一种方法是尝试直接访问page
节点的收件箱。下面的URI表示我是如何尝试的:
/{page-id}/inbox
以下是错误消息:
您只能访问当前用户的“收件箱”连接。
然后我尝试按照某些地方的建议访问conversations
和threads
边缘:
/{page-id}/conversations
/{page-id}/threads
两个URI都会产生以下错误:
(#298)您必须是该应用程序的开发人员
我无法弄清楚到底出了什么问题?有一些关于Facebook的错误报告,与“#(298)”相关,几个月前有报道,但我不相信它到目前为止还没有修复。
欢迎任何替代方法。
答案 0 :(得分:3)
如果您使用用户访问令牌而不是页面访问令牌,则会出现此问题。
我在Facebook Graph API Explorer中这样做,我以为我正在使用页面访问令牌,但我不是。当我从API资源管理器中运行{page-id}/conversations?access_token={page_access_token}
时,它在顶部的访问令牌字段中有{user_access_token}
。这是在资源管理器发送的实际请求中发送的(如Chrome的开发工具中所示)。即,API Explorer忽略了我输入的{page_access_token}
并使用了访问令牌字段中的值。
清除访问令牌字段或在该字段中输入{page_access_token}
会导致发送预期的{page_access_token}
。在浏览器和API Explorer中执行某些步骤向我展示了方法。
以下是解决此问题的步骤:
通过从API资源管理器中点击获取访问令牌获取具有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
获取网页访问令牌:从API资源管理器中运行/me/accounts
或访问以下网址。
https://graph.facebook.com/v2.0/me/accounts?method=GET&format=json&suppress_http_code=1&access_token={user-access-token}
获取对话:使用上述步骤中的页面访问令牌(如果使用API资源管理器,将其粘贴在访问令牌字段中)以获取对话* *运行/{page-id}/conversations
或访问以下网址。
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页面的管理员才能访问其对话。