如何在一段时间内禁用 Facebook Bot 以允许人类回复

How can I disable a Facebook Bot for a certain time to allow a human to reply

我一直在努力解决这个问题,但一直没有成功。搜索得到了我这个:Facebook Messenger Bot - How to disable bot and allow human to chat

我正在使用 Python,但可以成功接收回调(和消息回显),因此当有人在我的机器人中选择 "other" 时我可以检索结果,但我还不知道如何禁用它允许人类回复(并在以后重新启用它)。

有人做过吗?

我认为这是目前移交协议的测试版功能:https://developers.facebook.com/blog/post/2017/04/18/messenger-platform-2.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。我知道全局变量很乱,但你有充分的理由编辑这个布尔值并在将来记住它。

目前(13 July 2017),Facebook方面暂无解决方案;但可以在您的代码库中实现逻辑。

您可以创建一个可以更新 user_idbot_enabled 的控制面板。然后当您从 Facebook 收到 webhook 时,您可以检查是否为该 sender - aka: user_id.

启用了机器人响应