为facebook chatbot实现切换协议会引发错误

时间:2019-03-13 10:30:24

标签: facebook facebook-graph-api

我的主要接收者是我的dialogflow聊天机器人,第二个接收者是页面收件箱。我想通过实现从聊天机器人切换到收件箱:

request({
    uri: 'https://graph.facebook.com/v3.2/me/pass_thread_control',
    qs: {'access_token': 'pageAccessToken'},
    method: 'POST',
    json: {
        recipient: {
            id: 'userIdFromRequest'
        },
        target_app_id: 'pageInboxAppId'
    },
}, (error: any, response: any, body: any) => {
    console.log('BODY PASS THREAD CONTROL: ', body);
});

但是我遇到了这个错误:

  

(#10)仅适用于主要接收者和次要接收者


当我尝试获取辅助接收器时:

request({
    uri: 'https://graph.facebook.com/v3.2/me/secondary_receivers?fields=id,name&access_token=<page-access-token>',
    qs: {'access_token': <page-access-token>},
    method: 'GET',
}, (error: any, response: any, body: any) => {
    console.log('BODY SECONDARY RECEIVERS: ', body);
});

我会收到此错误:

  

(#10)只有主接收器可以调用此API

但是我的聊天机器人是主要的接收者。我进入page settings-> messenger platform

我发现这曾经是一个Facebook错误,但现在应该已经修复。

有人知道我在做什么错吗?

更新

Web挂钩请求中缺少app_roles参数。可能与它有关吗?

另一个错误可能是userId。我拿了senderId。 ReceiverId遇到授权错误,错误代码为1,并显示消息“发生未知错误”。我不确定哪一个是正确的。<< / p>

更新2

receiverId似乎是正确的。第二个请求可以使用它。但仍然不是第一个:500个内部服务器错误...

1 个答案:

答案 0 :(得分:0)

突然,它现在可以工作了。也许他们改变了后端的任何内容。