Facebook 需要具有读取页面邮箱权限才能管理对象
即使我已经授予“阅读页面邮箱”权限,我也遇到了来自Facebook的以下错误消息Facebook 需要具有读取页面邮箱权限才能管理对象,facebook,facebook-graph-api,Facebook,Facebook Graph Api,即使我已经授予“阅读页面邮箱”权限,我也遇到了来自Facebook的以下错误消息 2017-08-24T03:03:03.691425+00:00 app[web.1]: POST /webhook 500 5.551 ms - 101 2017-08-24T03:03:03.790925+00:00 app[web.1]: Failed calling Send API 403 Forbidden { message: '(#200) Requires read_page_mailboxes
2017-08-24T03:03:03.691425+00:00 app[web.1]: POST /webhook 500 5.551 ms - 101
2017-08-24T03:03:03.790925+00:00 app[web.1]: Failed calling Send API 403 Forbidden { message: '(#200) Requires read_page_mailboxes permission to manage the object',
2017-08-24T03:03:03.790930+00:00 app[web.1]: fbtrace_id: 'ABmbB0iwWXQ' }
2017-08-24T03:03:03.790929+00:00 app[web.1]: code: 200,
2017-08-24T03:03:03.790928+00:00 app[web.1]: type: 'OAuthException',
审批事项:
我在webhook中编写了以下代码:
router.post('/', function (req, res) {
var data = req.body;
if (data.object == 'page') {
data.entry.forEach(function(pageEntry) {
var pageID = pageEntry.id;
var timeOfEvent = pageEntry.time;
if (pageEntry.hasOwnProperty('changes')) {
pageEntry.changes.forEach(function(changes){
if(changes.field === "feed" && changes.value.item === "comment" && changes.value.verb === "add"){
var messageData = {
message: "hello"
};
callPrivateReply(messageData, changes.value.comment_id);
}
});
}
});
}
});
function callPrivateReply(messageData,comment_id) {
request({
uri: 'https://graph.facebook.com/v2.9/' + comment_id + '/private_replies',
qs: { access_token: 'TOKEN' },
method: 'POST',
json: messageData
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
} else {
console.error("Failed calling Send API", response.statusCode, response.statusMessage, body.error);
}
});
}
你在使用页面访问令牌吗?@CBroe-yap,当然。我使用了。调试您的用户访问令牌(或使用它请求
/me/permissions
),并验证它确实包含权限。yap,我在那里找到的,以及您在API调用中传递页面访问令牌的确切位置?我只看到您在传入的webhook数据上循环,并且由于您正在检查那里的页面id,我假设您正在使用此端点管理来自多个页面的更新?实际发送似乎发生在callPrivateReply
内部,但我没有看到您向其中传递任何页面id或访问令牌。您使用的是页面访问令牌吗?@CBroe-yap,当然。我使用了。调试您的用户访问令牌(或使用它请求/me/permissions
),并验证它确实包含权限。yap,我在那里找到的,以及您在API调用中传递页面访问令牌的确切位置?我只看到您在传入的webhook数据上循环,并且由于您正在检查那里的页面id,我假设您正在使用此端点管理来自多个页面的更新?实际的发送似乎发生在callPrivateReply
内部,但我没有看到您向其中传递任何页面id或访问令牌。