首页 > 解决方案 > 如何修复 Twilio 称之为我的 webhook 的 403 错误?

问题描述

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

这似乎工作正常。但是现在我对代码进行了更改,突然间,Twilio 在调用 webhook 时遇到了问题。我们没有收到该消息,如果我查看 Twilio 日志,它会说它收到 403 错误。(我不能发誓这种情况以前从未发生过。我从未注意到消息丢失,但也许我在调试其他错误时错过了它,将丢失的消息归因于其他东西。)

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

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

当我的 web hook 被调用时,它现在做的第一件事就是向我发送一封电子邮件,其中包含来自 Twilio 的消息内容。(出于调试目的。)我没有收到那封电子邮件,所以我非常确信它没有被调用。正如我所说,我可以查看 Twilio 的日志,它说它收到了文本消息,并在尝试将其转发到我的 webhook 时遇到 403 错误。

它只有 1/3 的时间这一事实特别令人费解。它从同一个号码到同一个号码,在同一个站点上访问完全相同的 URL。为什么它有时会起作用而不是其他时候?

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

哦,服务器是 ASP.NET。代码在 VB 中,但我怀疑这很重要,因为当它失败时,我们没有执行任何代码。当它没有得到 403 时,代码工作正常。

标签: twiliotwilio-api

解决方案


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

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

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


推荐阅读