Facebook API:访问页面对话

Facebook API: Access page conversation

本文关键字:面对 对话 访问 API Facebook      更新时间:2023-09-26

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

我的帐户只管理一个页面,我可以访问该页面,但不知何故无法访问对话。

我像这样请求权限:

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


并获得所有图形 API 调用的预期结果,但最后一个调用除外:


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是不能被授予的。

实际上,read_mailbox已被弃用,您最好使用read_page_mailboxes

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

我不确定,但我认为这就是为什么你没有获得它的许可

read_page_mailboxes

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

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

查看 如果您的应用请求此权限,Facebook 将必须 查看应用如何使用它。

常见用法 允许某人通过以下方式管理其主页的邮箱 您的应用。

我找到了一个解决方案:insteatUF尝试以页面管理员的身份访问对话,"/" + page.id + "/conversations"我只是将它们作为页面本身访问:"me/conversations?access_token=" + page.access_token