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