Twilio WhatsApp HTTP检索失败,但无法在本地重现错误

使用WhatsApp API,我有一个非常简单的flask应用程序,它在2台服务器上运行,该应用程序仅在根地址处接受发帖请求并打印收到的内容。一台主机位于Traefik后面,另一台由我直接运行,因此flask的内置开发服务器可以直接暴露。第一个主机称为http://sub.domain.com/incoming/,第二个主机使用IP http://12.34.56.78

在后者上,所有功能均按预期工作:我收到Twilio的回调,并且我也可以自己调用API并获得干净的响应(HTTP 200,<Response></Response>作为正文)。在前一种情况下,如果我自己调用API,则可以正常工作,并且得到相同的输出。但是当Twilio发送其回调时,我在Twilio的调试器上始终遇到11200 HTTP检索失败。

我发现这种行为上的差异有些奇怪,但是还有一个细节我真的觉得有些奇怪-Twilio调试器可以选择“重播请求”,在这种情况下,它的回调可以重新发送。在发生检索失败的主机上,如果重播失败的请求,它们将始终成功!

在一切正常的服务器上,我存储了一个原始的Twilio请求(带有标头的HTTP等),并尝试使用netcat手动将此请求发送到发生故障的服务器(在更新Host标头字段之后)。当我这样做时,服务器响应没有任何问题,因此请求的结构似乎不是问题。

我真的很茫然,我已经没有足够的想法去寻找导致这个问题的原因了。有什么建议吗?

hyt19880222 回答:Twilio WhatsApp HTTP检索失败,但无法在本地重现错误

在Twilio的开发人员支持下来回奔波之后,看来这是他们的问题。问题是我URL的子域部分包含下划线。由于某些原因,Twilio的webhook系统不接受此请求,即使它们的“重播请求”功能对此没有问题(好像它们通过不同的子系统)。我已通过用下划线代替下划线来解决此问题,现在一切正常。

,

Heyooo。 Twilio开发人员布道者在这里。 ?

为完整起见:Twilio不接受在域或子域中Webhook URL的下划线(“消息传入”),用于发送到您的Twilio号码的SMS。如果您尝试使用URL的域或子域中的下划线保存电话号码配置页面,则会在控制台“ URL无效”中看到错误。

但是,Twilio Whatsapp的Webhook的配置存在错误,即使URL对Twilio无效,也不会拒绝URL!因此,尽管该URL被接受,但请求将失败。

我们为此创建了一个票证,工程团队现在已经知道此问题。

感谢您提出此问题。 :)

本文链接:https://www.f2er.com/3144020.html

大家都在问