我已经成功使用帐户活动API设置了DM机器人。一切工作都很好,除了有时(通过Twitter的Web界面或移动应用程序)发送给bot的消息不会向我的服务器触发网络钩子。这些消息可以是快速答复或纯文本。
原因显然不是我的服务器停机,因为我尝试在2个webhook注册用户之间进行对话(因此我的服务器收到两个用户的webhooks),并且对于发送的相同消息,我已经成功接收了发送者(用户),而不是接收者(机器人)。 由于该漫游器尚未投入生产,其原因不是消息过多。当前只有2个用户进行对话。根据我的经验,大约10%的消息是“丢失”的。
我使用的是免费(沙盒)帐户活动API层,但是据我了解,免费和付费版本之间的唯一区别是订阅数量较多(我认为15可以)和“重试”功能。关于此功能,specified表示“当客户的网络应用未针对帐户活动Webhook事件返回“成功” 200响应时,帐户活动API提供了重试功能。” 它清楚地表明事件失败与客户端有关,而与Twitter无关。考虑到这个问题(我的服务器根本没有收到网络挂钩),因此不能保证即使在付费计划中也将交付每个事件。
对于机器人来说,这是一个很大的麻烦,因为只能单击一次按钮,因此用户必须从头开始重试对话(除了机器人“不起作用”的事实……)
所以我的问题是:
我已经在官方的Twitter论坛中创建了topic,并且在同一案件中至少还有其他人,但是到目前为止,Twitter尚未提供官方答复。
非常感谢!
BR, 西蒙
答案 0 :(得分:1)
我从Twitter获得了官方答复:
不幸的是,当一个事件只有1次交付尝试时,不可能达到100%的交付率,这就是为什么我们要重试(即使如此,重试也不保证)。事情可能会出错;也许是Twitter数据中心的内部问题,互联网中的路由问题,您的Webhook托管问题等等。
所以从现在开始,当您在Twitter上构建机器人时,似乎没有办法实现100%的成功交付。
完整答案可以阅读here。