Facebook Messenger 聊天机器人给出重复回复
Facebook messenger chatbot gives duplicate replies
我正在使用 wit.ai 和 python 构建聊天机器人并将其与 Facebook Messenger 集成。我已经设置了 webhooks 以及发送函数和 fb_message 函数,就像本教程中的一样:https://github.com/wit-ai/pywit/blob/master/examples/messenger.py
当我在 wit.ai 或控制台中测试时,我的机器人工作正常,但当我在实际的 Facebook Messenger 中测试时,它会给出每个回复两次。调用机器人内部的哪个函数并不重要,我总是会收到两个回复。
我最简单的动作是这样的:
def defaultAnswer(request):
context = request['context']
return context
(这个 returns 总是相同的字符串,在 wit.ai 引擎中定义。)
如果您的机器人订阅了 pages_messaging 以外的事件,例如 messaging_deliveries,请确保您也在处理此事件。
发生的情况是您的机器人正在接收消息请求,然后通过另一个事件接收另一个请求,并且您的代码将它们都作为消息处理。
我认为这是问题所在,如果不是,请提供更多详细信息。
我之前遇到过这个问题,结果发现 message_echoes
已启用。如果启用此功能,基本上会发生什么情况,即 Bot 将尝试回显您输入的任何文本。
我的逻辑最终捕捉到回声,然后以相同的响应进行响应。我确实有一个处理程序来捕获类似的响应,因此我能够避免无限循环。
可能有人和我一样。
我的情况:
我错误地将我的两个不同的机器人订阅到 developer.facebook.com 上的一个 Facebook 页面。
由于这个错误,当我向我的 Facebook 页面写入特定命令(例如重新启动)时,机器人会向我回复完全相同的两条消息(例如 "Bot Restarted"、"Bot Restarted")。
发现问题让我抓狂。
您最多应该订阅一个机器人到您的 Facebook 页面。
我正在使用 wit.ai 和 python 构建聊天机器人并将其与 Facebook Messenger 集成。我已经设置了 webhooks 以及发送函数和 fb_message 函数,就像本教程中的一样:https://github.com/wit-ai/pywit/blob/master/examples/messenger.py
当我在 wit.ai 或控制台中测试时,我的机器人工作正常,但当我在实际的 Facebook Messenger 中测试时,它会给出每个回复两次。调用机器人内部的哪个函数并不重要,我总是会收到两个回复。
我最简单的动作是这样的:
def defaultAnswer(request):
context = request['context']
return context
(这个 returns 总是相同的字符串,在 wit.ai 引擎中定义。)
如果您的机器人订阅了 pages_messaging 以外的事件,例如 messaging_deliveries,请确保您也在处理此事件。
发生的情况是您的机器人正在接收消息请求,然后通过另一个事件接收另一个请求,并且您的代码将它们都作为消息处理。
我认为这是问题所在,如果不是,请提供更多详细信息。
我之前遇到过这个问题,结果发现 message_echoes
已启用。如果启用此功能,基本上会发生什么情况,即 Bot 将尝试回显您输入的任何文本。
我的逻辑最终捕捉到回声,然后以相同的响应进行响应。我确实有一个处理程序来捕获类似的响应,因此我能够避免无限循环。
可能有人和我一样。
我的情况:
我错误地将我的两个不同的机器人订阅到 developer.facebook.com 上的一个 Facebook 页面。
由于这个错误,当我向我的 Facebook 页面写入特定命令(例如重新启动)时,机器人会向我回复完全相同的两条消息(例如 "Bot Restarted"、"Bot Restarted")。
发现问题让我抓狂。
您最多应该订阅一个机器人到您的 Facebook 页面。