【问题标题】:Random duplicated messages in messenger botMessenger bot中的随机重复消息
【发布时间】:2017-05-12 18:20:57
【问题描述】:

全部。

上周我们在 Facebook Messenger 中遇到了消息顺序问题。

当用户与我们的机器人交互时,在大多数情况下,Messenger 会发送它之前在对话中发送过的随机消息。这些旧消息不是由我们的机器人触发的,它们只是出现,这让我们认为它是一个 Messenger 的东西。过了一会儿,当用户离开对话几秒钟后又回来时,机器人又好了。有时用户必须对机器人说“嗨”,这样它才能回到正确的对话点。

用户发送的消息也会发生这种情况,而不仅仅是我们的机器人。

我们在网络平台上使用它从​​来没有遇到过这个问题。到目前为止,它似乎只发生在 Android 设备(Android massenger 应用程序)中。

当我们从粉丝页面查看对话时,一切正常,仅从粉丝页面的角度很难确定问题发生在哪里。似乎没有问题。但如果你是与机器人交互的人就很糟糕,这对最终用户来说就像是一场“疯狂”的对话。

这与其他主题中列出的情况不同。我们有一个发送大量消息的信息线程,例如,在这种情况下,它从未按顺序失败。它只会在用户与机器人交互时发生。

这里有人遇到这种消息顺序问题吗?

提前谢谢你。

【问题讨论】:

  • 我以前没有见过这种行为。是什么让您确定您的机器人没有发送消息?如果您可以分享您的代码,也许有人可以提供帮助。
  • 您的意思是消息发送给用户 - 还是您的 webhook 多次接收用户消息?如果您的机器人在定义的时间范围内没有以 20 OK 响应传入的 webhook 请求,则后者很容易发生。在这种情况下,Facebook 将假定您没有正确接收数据,并在不久之后再次发送。
  • 谢谢大家的关注。
  • 我们认为我们的机器人不会发送这些消息,因为如果您离开对话或向机器人写一些东西,重复的消息就会消失。如果 bot 发送这些消息,它们就不会消失。就像消息不存在,但用户看到了它。如果 bot 正在发送该消息,它的线程也将被更改。它不会发生,因为 bot 不会更改其原始线程。
  • 这些消息突然出现(有时如果你等待几秒钟,有时如果你对机器人说“嗨”,有时你必须删除对话,然后在你回来时打声招呼)从谈话中消失。另一件事是:如果机器人正在发送它们,则可以从粉丝页面的角度检查它们,并且不会发生,因为重复的消息实际上不存在。

标签: facebook facebook-messenger facebook-messenger-bot


【解决方案1】:

我们已经在 android 中看到了相同的行为

在进一步调查中,我们发现我们假设已传递给用户的消息实际上并未传递。

我们所做的是开始收听交货通知并阅读收据documentation link。我们在最后保存了每条消息,然后用 seq 号映射,结果发现 android 中存在连接问题,用于 fb messenger (reference)。

当 fb messenger 在后台运行并且网络连接不佳时,则不会收到消息。这是我在网络连接不佳时观察到的情况。

【讨论】:

  • 谢谢,库纳尔。我们假设收到消息是因为 bot 以正确的方式继续其线程。发生的情况是 Messenger 将其中一些消息返回,但它只保留在用户的 Messenger 中,因为机器人不会在其线程中考虑它们。当用户离开对话并返回对话时,它们不再存在。我们认为如果是交付问题,bot 的线程也会受到影响,但事实并非如此。我在上面留下了一些 cmets 更好地解释它。这对你有意义吗?
  • @DanielFaria 我们还没有看到这种行为。您是否考虑过用户删除已发送到机器人但未传递的消息然后在稍后阶段传递(未清除本地缓存)的场景?您是否也可以尝试在 m.me 而不是 app 上重现此场景?我认为应用存在连接故障。
  • 我们没有考虑这种情况,因为我在使用自己的机器人时经常发生这种情况。我的意思是,我不会删除这些消息,而且它一直在发生。它从未发生在m.me。它似乎只发生在用户在 Android 中使用 Messenger 时。它使事情难以监控,因为看起来像是一个独立的东西,与我们的机器人无关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-17
  • 1970-01-01
  • 1970-01-01
  • 2021-06-05
  • 1970-01-01
  • 2018-01-21
  • 1970-01-01
相关资源
最近更新 更多