Twitter帐户活动API的webhook交付不一致

时间:2020-02-20 10:15:36

标签: api twitter webhooks

我已经成功使用帐户活动API设置了DM机器人。一切工作都很好,除了有时(通过Twitter的Web界面或移动应用程序)发送给bot的消息不会向我的服务器触发网络钩子。这些消息可以是快速答复或纯文本。

原因显然不是我的服务器停机,因为我尝试在2个webhook注册用户之间进行对话(因此我的服务器收到两个用户的webhooks),并且对于发送的相同消息,我已经成功接收了发送者(用户),而不是接收者(机器人)。 由于该漫游器尚未投入生产,其原因不是消息过多。当前只有2个用户进行对话。根据我的经验,大约10%的消息是“丢失”的。

我使用的是免费(沙盒)帐户活动API层,但是据我了解,免费和付费版本之间的唯一区别是订阅数量较多(我认为15可以)和“重试”功能。关于此功能,specified表示“当客户的网络应用未针对帐户活动Webhook事件返回“成功” 200响应时,帐户活动API提供了重试功能。” 它清楚地表明事件失败与客户端有关,而与Twitter无关。考虑到这个问题(我的服务器根本没有收到网络挂钩),因此不能保证即使在付费计划中也将交付每个事件。

对于机器人来说,这是一个很大的麻烦,因为只能单击一次按钮,因此用户必须从头开始重试对话(除了机器人“不起作用”的事实……)

所以我的问题是:

  • 这里有人遇到这个问题吗?
  • 这是免费的帐户活动API的“错误还是功能”?我的意思是,免费层不会随意触发webhook(即使未在文档中指定)?
  • 是否可以通过仪表板查看或衡量Twitter端的webhook故障?
  • 猜测是,如果该帐户通过验证(带有蓝色徽章)或达到关注者人数阈值,事件可能会更加准确?由于事件的潜在激增,处理方法可能有所不同,因此可以使用更多资源对其进行监视,从而更加可靠?

我已经在官方的Twitter论坛中创建了topic,并且在同一案件中至少还有其他人,但是到目前为止,Twitter尚未提供官方答复。

非常感谢!

BR, 西蒙

1 个答案:

答案 0 :(得分:1)

我从Twitter获得了官方答复:

不幸的是,当一个事件只有1次交付尝试时,不可能达到100%的交付率,这就是为什么我们要重试(即使如此,重试也不保证)。事情可能会出错;也许是Twitter数据中心的内部问题,互联网中的路由问题,您的Webhook托管问题等等。

所以从现在开始,当您在Twitter上构建机器人时,似乎没有办法实现100%的成功交付。

完整答案可以阅读here