我正在使用wit.ai和python构建一个聊天机器人并将其与Facebook Messenger集成。我已经设置了webhooks以及发送函数和fb_message函数,就像在本教程中一样:https://github.com/wit-ai/pywit/blob/master/examples/messenger.py
当我在wit.ai或控制台中测试时,我的机器人工作正常,但是当我在实际的Facebook Messenger中测试它时,它会给每次回复两次。机器人内部的哪个函数被调用并不重要,我总是得到两个回复。
我最简单的行动就是:
(*****************************************************************)
(*Task 01(c) and 02(a)*)
(*****************************************************************)
n = 1000;
taskC = Table[-Log[RandomReal[]], {n}];
ListPlot[taskC, AxesLabel->{"No. obs", "value of the obs"}]
i = 1;
ListPlot[Table[
{taskC[[k]], taskC[[k+i]]},
{k, 1, n-i,1}],
AxesLabel->{"obs.no.n", "obs.no.n+1"}]
i++;
ListPlot[Table[
{taskC[[k]], taskC[[k+i]]},
{k, 1, n-i,1}],
AxesLabel-> {"obs.no.n", "obs.no.n+2"}]
i++;
ListPlot[Table[
{taskC[[k]], taskC[[k+i]]},
{k,1,n-i,1}],
AxesLabel->{"obs.no.n", "obs.no.n+3"}]
avg = (1/n)*Sum[taskC[[i]], {i,n}];
ListPlot[Table[1/(n-tau) * Sum[(taskC[[i]]-avg)*(taskC[[i+tau]] - avg), n], {tau, 1,100}],
Joined->True,
AxesLabel->"Covariance Function"]
(这将返回相同的字符串,在wit.ai引擎中定义。)
答案 0 :(得分:1)
如果您的机器人订阅了pages_messaging以外的事件,例如messaging_deliveries,请确保您也处理此事件。
正在发生的事情是你的机器人正在接收消息请求,然后又接收另一个事件,而你的代码正在将它们作为消息处理。
我认为这是问题,如果不是,请向我们提供更多相关细节。
答案 1 :(得分:0)
之前我遇到过这个问题,事实证明message_echoes
已启用。如果启用此功能,那么Bot将尝试回显您输入的文本。
我的逻辑最终捕获了回声,然后回应了同样的回应。我有一个处理程序来捕获类似的响应,所以我能够避免无限循环。
答案 2 :(得分:0)
有人可能会像我一样。
我的情况:
我错误地将我的两个不同机器人订阅到developer.facebook.com上的一个Facebook页面。
由于这个错误,当我向我的facebook页面写一个特定的命令(例如重启)时,bot会向我回复完全相同的两条消息(例如“Bot Restarted”,“Bot Restarted”)。
找到问题让我很疯狂。
您最多应订阅一个机器人到您的Facebook页面。