我已经开始使用Twilio可编程SMS API通过Twilio发送消息。
众所周知,消息状态可以为queued
,failed
或sent
,delivered
或undelivered
,并且在一段时间内会发生变化时间。
根据文档,API提供了一种出色的工具,可以使用StatusCallback
请求参数来监视消息的状态,此参数的值是在消息状态更改时被调用的URL。
我假设StatusCallback URL是我们的自定义REST API端点,只要消息状态更改,Twilio就会调用它。我对么?如果是,如何对Twilio进行身份验证以调用我们的StatusCallback URL,如何处理StatusCallback
URL的身份验证?
答案 0 :(得分:1)
Twilio允许您通过两种方式为Webhooks设置身份验证。
首先,您可以将端点设置为要求HTTP authentication。然后,您可以在URL中设置用户名和密码。 Twilio将首先发送不带Authorization
头的请求。服务器使用响应状态代码401 Unauthorized
,响应头WWW-Authenticate
和响应点realm
进行响应之后,Twilio将使用响应头Authorization
发出相同的请求。
另一种确保请求发起人是Twilio的方法是将validate the signature作为请求的X-Twilio-Signature
标头。签名由URL和请求的所有参数组成,并使用您帐户的auth令牌签名。如果可以生成相同的签名,则可以信任它来自Twilio。选中the documentation for how to validate the signature,它也内置在每个官方的Twilio帮助程序库中。