Facebook API:访问页面对话

时间:2016-03-10 10:36:09

标签: javascript facebook facebook-graph-api

我想创建一个能够访问用户正在管理的页面消息的Facebook应用程序。

我的帐户正在管理一个页面,我可以访问该页面,但不管怎么说都不是对话。

我请求我的权限:

FB.login(function (response) {
    testFacebookApi();
}, {
    scope: "manage_pages,read_page_mailboxes"
});


并获得所有Graph-API-Calls的预期结果,但最后一个:


FB.api("/me", function (response) {
    console.log("Me: ", response);
});

结果:Object {name: "{MyName}", id: "{MyID}"}


FB.api("/me/permissions", function (response) {
    console.log("My Permissions: ", response);
});

结果:permission: "manage_pages" status: "granted"
permission: "read_page_mailboxes" status: "granted",...


FB.api("/me/accounts", function (response) {
   console.log("My accounts: ", response);
});

结果:access_token: "{my_page_acces_token}" category: "{my_page_category}" id: "{my_page_id}" name: "{my_page_name}"


FB.api("/" + page.id, function (pageResponse) {
    console.log("Page: ", pageResponse);
});

结果:Object {name: "{my_page_name}", id: "{my_page_id}"}结果正确


FB.api("/" + page.id + "/conversations", function (convResponse) {
    console.log("Conversations: ", convResponse);
});

结果:error: Object code: 298 message: "(#298) Requires extended permission: read_mailbox" type: "OAuthException"


但由于我有read_mailbox,因此不应要求read_page_mailboxes来阅读网页消息。并且read_mailbox无法授予....

2 个答案:

答案 0 :(得分:0)

实际上,不推荐使用read_mailbox,并且使用read_page_mailboxes

您是否曾要求Facebook对您的应用进行审核?

我不确定,但我认为这是你没有获得许可的原因

  

read_page_mailboxes

     

提供从页面的页面收件箱中读取的功能   由一个人管理。此权限通常与。一起使用   manage_pages权限。

     

此权限不允许您的应用读取网页所有者的邮箱。   它仅适用于页面的邮箱。

     

评论如果您的应用请求Facebook必须提供此权限   查看您的应用如何使用它。

     

常见用法让某人管理其Pages的邮箱   你的应用。

答案 1 :(得分:0)

我找到了一个解决方案: 如果您尝试使用"/" + page.id + "/conversations"作为网页管理员访问对话,我只需将其作为网页本身访问:"me/conversations?access_token=" + page.access_token