Обратный вызов статуса смс twilio - не в json
Я сделал приложение на django, которое интегрируется с Twilio SMS, и я пытаюсь настроить способ получения статуса отправленного sms-сообщения.
Я следовал руководству twilio о как отслеживать статус доставки на python поэтому, когда я отправляю текст, я отправляю его со следующими параметрами (где 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, а представляют собой длинную строку, как показано ниже
Прежде чем я начну кодировать какой-то странный regex для обработки такой строки, мне интересно, есть ли у кого-нибудь советы по обработке этого процесса.
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
.
Например, вы должны быть в состоянии получить статус, вызвав request.POST.get('MessageStatus')
.