2016-11-28 113 views
-1

我正在用wit.ai和python构建聊天机器人并将其与Facebook Messenger集成。我已成立了网络挂接以及发送功能和fb_message功能完全像在本教程中:当我在wit.ai或控制台测试https://github.com/wit-ai/pywit/blob/master/examples/messenger.pyFacebook Messenger聊天机器人给出了重复的回复

我的机器人工作正常,但是当我测试它在实际的Facebook Messenger的,它给每个答复两次。机器人内部的哪个函数被调用并不重要,我总是得到两个回复。

我最简单的操作是这样的:

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

(这总是返回相同的字符串,这是在wit.ai引擎定义。)

+0

你检查facebook api的消息是否为空? $ input ['entry'] [0] ['messaging'] [0] ['message'] - >检查这个是否为空或者不空...如果为空则不处理请求。 – ssakash

回答

1

如果你的机器人预订了比pages_messaging其他事件,比如messaging_deliveries,确保你也处理这个事件。

发生了什么事是你的机器人正在接收消息请求,然后通过另一个事件接收另一个消息,并且你的代码将它们作为消息处理。

我认为这是问题,如果不是,请给我们更多的细节。

0

我以前有过这个问题,事实证明,message_echoes已启用。如果启用该功能,会发生什么情况是Bot会尝试回应您输入的任何文本。

我的逻辑结束了捕捉回声,然后回应相同的回应。我确实有一个处理程序来捕获类似的响应,所以我能够避免无限循环。

0

有人可能会像我的情况。

我的情况:

我误订阅我的两个不同的漫游到一个Facebook页面上的developer.facebook.com。

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

这让我很难找出问题。

您应该至多订阅一个bot到您的Facebook页面。

相关问题