我一直试图解决这个问题,但没有运气。搜索得到了我:Facebook Messenger Bot - How to disable bot and allow human to chat
我正在使用Python,但可以成功接收回调(和消息回声),所以当有人在我的机器人中选择“其他”时我可以检索结果但是我还没弄清楚如何禁用它以允许人类回复(并在以后重新启用它。)
有人这样做了吗?
答案 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_id
和bot_enabled
的控制台。然后,当您从Facebook收到webhook
时,您可以检查是否为sender - aka: user_id
启用了机器人响应。