我正在尝试将 Twilio 与 Google App Engine 一起使用。我目前正在尝试使用 SMS 消息验证来自 Twilio 的请求。我有一个自定义处理程序,上面有以下两种方法。
from twilio.util import RequestValidator
class TwilioRequestHandler(BaseRequestHandler):
def twilio_request_validator(self):
return RequestValidator(AUTH_TOKEN)
def validate_request(self):
if not 'X-Twilio-Signature' in self.request.headers:
logging.error("X-Twilio-Signature was not in the request headers")
return False
return self.twilio_request_validator().validate(self.request.url, self.request.POST, self.request.headers['X-Twilio-Signature'])
当我的 TwiML 端点之一收到请求时,我会self.validate_request()
从我的请求处理程序中调用。这似乎总是返回错误。从我上面的代码可以看出,这应该相当于调用 Twilio 的RequestValidator(AuthToken).validate(self.request.url, self.request.POST, self.request.headers['X-Twilio-Signature'])
我认为在计算签名时可能不应该包含我收到的一些请求参数,所以我什至为一个请求获取参数,创建一个简单的脚本检查所有可能的组合,并且将其与该请求的签名进行比较。他们都没有成功,所以我必须好奇我做错了什么,或者这是否可能是 Twilio 方面的问题。