Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Facebook messenger聊天机器人提供重复回复_Python_Chatbot_Wit.ai_Facebook Chatbot_Facebook Messenger Bot - Fatal编程技术网

Python Facebook messenger聊天机器人提供重复回复

Python Facebook messenger聊天机器人提供重复回复,python,chatbot,wit.ai,facebook-chatbot,facebook-messenger-bot,Python,Chatbot,Wit.ai,Facebook Chatbot,Facebook Messenger Bot,我正在用wit.ai和python构建一个聊天机器人,并将其与Facebook Messenger集成。我已经设置了Webhook以及发送函数和fb_消息函数,与本教程中的设置完全相同: 当我在wit.ai或控制台中测试它时,我的机器人工作正常,但当我在实际的Facebook Messenger中测试它时,它会给每个回复两次。无论调用bot中的哪个函数,我总是得到两个回复 我最简单的行动是: def defaultAnswer(request): context = request['c

我正在用wit.ai和python构建一个聊天机器人,并将其与Facebook Messenger集成。我已经设置了Webhook以及发送函数和fb_消息函数,与本教程中的设置完全相同:

当我在wit.ai或控制台中测试它时,我的机器人工作正常,但当我在实际的Facebook Messenger中测试它时,它会给每个回复两次。无论调用bot中的哪个函数,我总是得到两个回复

我最简单的行动是:

def defaultAnswer(request):
    context = request['context']
    return context

(这将始终返回相同的字符串,该字符串在wit.ai引擎中定义。)

如果您的bot订阅的事件不是页面消息传递,如消息传递,请确保您也在处理此事件

发生的情况是,您的bot正在接收消息请求,然后一个接一个地接收另一个事件,而您的代码正在将它们作为消息处理


我认为这就是问题所在,如果不是,请向我们提供更多详细信息。

如果您的机器人订阅了除页面消息以外的事件,如消息传递,请确保您也在处理此事件

发生的情况是,您的bot正在接收消息请求,然后一个接一个地接收另一个事件,而您的代码正在将它们作为消息处理


我认为这就是问题所在,如果不是,请提供更多详细信息。

我以前遇到过这个问题,结果是,
消息\u echoods
已启用。如果启用此功能,基本上会发生的情况是,Bot将尝试回显您输入的任何文本


我的逻辑最终捕捉到了回声,然后做出了同样的反应。我确实有一个处理程序来捕获类似的响应,因此我能够避免无限循环。

我以前遇到过这个问题,结果是,
消息\u回音
被启用。如果启用此功能,基本上会发生的情况是,Bot将尝试回显您输入的任何文本


我的逻辑最终捕捉到了回声,然后做出了同样的反应。我确实有一个处理程序来捕捉类似的响应,因此我能够避免无限循环。

有人可能会遇到类似我的情况

我的案例:

我错误地在developer.facebook.com上的一个facebook页面上订阅了两个不同的机器人

由于这个错误,当我向我的facebook页面写入一个特定的命令(例如重新启动)时,bot会向我回复完全相同的两条消息(例如“bot Restarted”、“bot Restarted”)

发现这个问题使我发疯


你最多应该在你的facebook页面上订阅一个机器人。

可能有人有我这样的案例

我的案例:

我错误地在developer.facebook.com上的一个facebook页面上订阅了两个不同的机器人

由于这个错误,当我向我的facebook页面写入一个特定的命令(例如重新启动)时,bot会向我回复完全相同的两条消息(例如“bot Restarted”、“bot Restarted”)

发现这个问题使我发疯


您最多应该向您的facebook页面订阅一个bot。

您是否检查来自facebook api的消息是否为空$输入['entry'][0]['messaging'][0]['message']->检查此项是否为空。。。如果为空,则不处理请求。是否检查来自facebook api的消息是否为空$输入['entry'][0]['messaging'][0]['message']->检查此项是否为空。。。如果为空,则不处理请求。