2012-10-09 124 views
2

我正在尝试阅读Facebook页面的收件箱和发件箱。我的第一种方法是尝试直接访问page节点的收件箱。下面的URI指示我怎样努力得到它:尝试阅读Facebook页面的消息时出现OAuth错误

/{page-id}/inbox

以下是错误消息:

You can only access the \"inbox\" connection for the current user.

然后我试图访问conversationsthreads边缘作为像这样一些地方建议:

/{page-id}/conversations

/{page-id}/threads

两者的URI产生以下错误:

(#298) You must be a developer of the application

我无法弄清楚什么是错的呢? Facebook上有一些错误报告,涉及几个月前曾报告的“#(298)”,但我不敢相信迄今尚未修复。

欢迎任何替代方法。

+0

如果我使用页面访问令牌,'/ pageid/conversations'适用于我。 – CBroe

+1

(代表@Dennis t发布):即使在创建具有read_mailbox&read_page_mailboxes权限的页访问标记之后,对话和线程边缘也会出现错误#298,这些权限分别是根据错误消息和文档所必需的。然后我尝试了所有可用的权限,但仍然没有运气。最后,我将开发人员角色交给了当前没有任何工作的用户。 – AndyG

回答

3

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

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

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

这是解决问题的步骤:

  1. 获取用户访问令牌:manage_pagesread_page_mailboxes权限*通过点击从API浏览器获得访问令牌和选择特定的权限或访问下面的网址。通过运行从API浏览器/me/accounts或vising以下网址:

    https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}&request_type=token&scope=manage_pages,read_page_mailboxes 
    
  2. 获取页面访问令牌。

    https://graph.facebook.com/v2.0/me/accounts?method=GET&format=json&suppress_http_code=1&access_token={user-access-token} 
    
  3. 获取对话:(如果使用API​​浏览器粘贴在访问令牌场),从上述步骤得到的谈话使用的页面访问令牌**通过运行/{page-id}/conversations或vising的下面的网址。

    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页面的管理员才能访问其会话。

相关问题