twilio 短信状态回调 - 不在 json 中

twilio sms status callback - not in json

我制作了一个与 Twilio SMS 集成的 django 应用程序,我正在尝试设置一种方法来获取我发送的短信的状态。

我一直在关注 how to track delivery status on python 上的 twilio 指南,所以当我发送文本时,我会使用以下参数发送它(其中 sms_obj 是我数据库中的一个实例,用于跟踪我的文本正在发送)。

def send_sms(sms_obj, to):
      client = Client(account_sid, auth_token)
      message = client.messages \
            .create(
                 body=sms_obj.body,
                 from_= phone_number,
                 to=to,
                 status_callback='https://www.ateam.productions/comunications/twilio/sms/status/{sms_id}'.format(sms_id=sms_obj.id)
             )

      return

所以基本上我应该收到关于此 url https://www.ateam.productions/comunications/twilio/sms/status/{sms_id} 的传递状态的回调,(我这样做了)

但是,我从 Twilio 获得的数据并不是很好的 Json 结构,而是像下面这样的长字符串。

在我开始编写一些奇怪的正则表达式来处理这样的字符串之前,我想知道是否有人对如何处理这个过程有建议。

SmsSid=SM3bceec02449e4a75a3c308e2befa6136&SmsStatus=sent&MessageStatus=sent&To=%2B19174003826&MessageSid=SM3bceec02449e4a75a3c308e2befa6136&AccountSid=////////&From=%2B19179244405&ApiVersion=2010-04-01

这里是 Twilio 开发人员布道者。

这不是您需要使用奇怪的正则表达式来处理的长字符串。该字符串的格式为 application/x-www-form-urlencoded。它与用于在 HTML 页面上提交表单的格式相同。

Django 已经可以解析这种类型的请求主体,您应该能够在 request.POST.

中将内容读取为类似 dict 的对象

例如,您应该可以通过调用 request.POST.get('MessageStatus').

来获取状态