如何修复403错误Twilio调用我的webhook?



我们正在使用Twilio。我们设置了webhooks,以便当Twilio收到调用时,它会将其转发到我们网站上的URL。

这似乎一直工作良好。但是现在我修改了代码,突然Twilio在调用webhook时出现了问题。我们没有收到消息,如果我查看Twilio日志,它说它得到了一个403错误。)我不敢发誓以前从没发生过这种事。我从来没有注意到消息丢失,但也许我在调试其他错误时错过了它,将丢失的消息归因于其他东西。

真正奇怪的是,大约2/3的进来的消息被接收和处理的很好,但大约1/3得到403错误。这是在测试服务器上,我们没有任何负载平衡,所以所有请求都将前往我们应用程序的同一实例。我今天所做的测试都是从同一部手机到同一Twilio号码。

我们在应用程序上确实有授权,但授权都在子目录中,而不是顶层,并且带有web钩子的子目录没有设置授权。

我的web钩子现在做的第一件事是当它被调用时,给我发送一封电子邮件,其中包含Twilio消息的内容。(用于调试目的。)我不会收到那封邮件,所以我很确定不会有人打电话给我。就像我说的,我可以看看Twilio的日志,它说它收到了短信,在试图把它转发到我的webhook时出现了403错误。

事实上,只有大约1/3的时间是特别令人费解的。从相同的数字,到相同的数字,在同一个网站上点击完全相同的URL。为什么有时有效,有时无效?

我试图通过直接调用URL在我的桌面上重现这个问题,而不是通过Twilio,这并没有给出相同的错误。(我在输入时突然想到,下一个逻辑测试是在不经过Twilio的情况下在服务器上点击页面。)

服务器是ASP.NET。代码是用VB编写的,但我怀疑这有什么关系,因为当它失败时,我们并没有执行任何代码。如果没有得到403,说明代码工作正常。

检查防火墙配置因为它可能会阻止请求。

如果是,则将白名单来自Twilio的请求。

我们正在使用AWS WAF,并且遇到了类似的情况:我们在Twilio调试器中看到403的请求出错,但请求从未到达我们的端点。一旦我们调整了白名单,问题就解决了。

最新更新