Как получить информацию об отправителе SMS с помощью python? - PullRequest
2 голосов
/ 28 июля 2011

Я использую Twilio и Django для приложения SMS (я начал изучать Python вчера, будьте осторожны).

Вот что мне нужно, чтобы помочь: Когда Twilio отправляет входящее SMS-сообщение на мой URL, яхочу, чтобы мое приложение автоматически добавляло входящий номер телефона, дату / время и входящее сообщение в некоторые списки.Как мне это сделать?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 28 июля 2011

Twilio отправляет его как параметр «От», когда запрашивает ваш URL.Документация находится по адресу: http://www.twilio.com/docs/api/twiml/sms/message

Это будет похоже на этот код, я написал это в webapp с python (не Django).

class MainHandler(webapp.RequestHandler):  

  def get(self):
    model = Storage()
    from = self.request.get("From")
    if from is not '':
      model.sms_from = self.request.get("From")
      model.sms_body = self.request.get("Body")
      model.put()

    models = Storage.all()

    for i in models:
      self.response.out.write(i.sms_from + ' ' + i.sms_body +'<br>')

ОБНОВЛЕНИЕ:

Когда я получу свой телефон и отправлю текст по адресу xxx-xxx-xxxx, twilio получит этот текст, а затем сделает запрос на URL-адрес, который я настроил.

С этого момента он выглядит точно так же, как запрос из веб-браузера.

Этот вопрос поможет вам разобраться с особенностями Django Захват параметров url в запросе. GET

Должны быть все необходимые параметры от отправителя.

0 голосов
/ 23 декабря 2011

Я только что написал пример приложения с использованием Twilio и Django на GitHub , но вот конкретный ответ, который вы ищете.

В этом примере я использую URL-адрес / reply / на моем сервере (и сказал Twilio, что это нужно для POST)

В urls.py вы просто собираетесь сделать стандартное отображение: url (r '^ reply', 'twilio_sms.views.sms_reply'),

Вот действительно базовый ответ пользователю, отвечающий тем, что ожидает сервер Twilio. def sms_reply (запрос): if request.method == 'POST': params = request.POST phone = re.sub ('+ 1', '', params ['From'])

    response_message =  '<?xml version="1.0" encoding="UTF-8">'
    response_message += '<Response><Sms>Thanks for your text!</Sms></Response>'
    return HttpResponse(response_message)

В моем коде я фактически строю XML-ответ, используя библиотеку, которую я предлагаю в целом, но для примера кода это слишком много информации.

...