如何禁用Facebook机器人一段时间以允许人类回复

时间:2017-07-11 21:47:10

标签: python facebook facebook-messenger facebook-messenger-bot

我一直试图解决这个问题,但没有运气。搜索得到了我:Facebook Messenger Bot - How to disable bot and allow human to chat

我正在使用Python,但可以成功接收回调(和消息回声),所以当有人在我的机器人中选择“其他”时我可以检索结果但是我还没弄清楚如何禁用它以允许人类回复(并在以后重新启用它。)

有人这样做了吗?

3 个答案:

答案 0 :(得分:1)

我认为这是目前使用移交协议的测试版功能:https://developers.facebook.com/blog/post/2017/04/18/messenger-platform-2.0/

答案 1 :(得分:0)

尝试使用布尔逻辑。它适用于我的NodeJS应用程序。它是这样的:

...
var botActive = true;
...
app.post('/webhook/', function (req, res) {
    let messaging_events = req.body.entry[0].messaging
    for (let i = 0; i < messaging_events.length; i++) {

        if (botActive == false) {
            // Add some conditions to wake up your bot if need be
        }

        if (botActive) {
            // If a message matches what you're looking for, make the bot respond.
            // If message doesn't match, send a default message (e.g. "The humans will get back to you.") and set botActive to 'false'
        }
    }
});

对于python,请查看how to edit global variables。我知道全局变量很乱,但你有充分的理由编辑这个布尔值并在将来记住它。

答案 2 :(得分:0)

目前(2017年7月13日),Facebook方面没有解决方案;但是可以在代码库中实现逻辑。

您可以创建一个可以更新user_idbot_enabled的控制台。然后,当您从Facebook收到webhook时,您可以检查是否为sender - aka: user_id启用了机器人响应。