我在node中创建了一个Messenger机器人。用户在页面上发表评论,这将启动消息序列。它以前一直在工作,但是现在我收到错误消息“该页面没有read_page_mailboxes或pages_messaging权限。”
我已根据此溢出中的说明创建了永久访问令牌:facebook: permanent Page Access Token?-这不起作用
我尝试请求获取read_page_mailboxes的权限,但是由于该边缘需要包含平台和登录信息,因此被拒绝了,我的机器人只使用了评论消息功能,
>我能够得到用户在页面上输入的单词,但是我无法使用comment_id发送私人消息。
if(entry.hasOwnProperty('changes')) {
entry.changes.forEach(function(changes){
let comp_comment;
if(typeof changes.value.message !== "undefined") {
comp_comment = changes.value.message.replace(/[^\w\s]/gi, '').trim().toLowerCase();
}
if(changes.field=="feed" && changes.value.item=="comment" && changes.value.verb=="add" && comp_comment == "enter") {
let user = changes.value.from.name;
let comment_name = user.replace(/ .*/,'');
callPrivateReply(changes.value.comment_id, comment_name);
}
})
}
然后这是我的请求功能
function callPrivateReply(comment_id, first_name) {
let messageData = {
"message": `this is the message I'm attempting to send`
}
request({
"uri": 'https://graph.facebook.com/v2.12/'+comment_id+'/private_replies',
"qs": { "access_token": PAGE_ACCESS_TOKEN },
"method": 'POST',
json: messageData
}, function (err, res, body) {
if (!err && res.statusCode == 200) {
console.log(body);
} else {
console.error("Failed calling Send API", res.statusCode, res.statusMessage, body.error);
}
});