2

我正在将 Twilio 和 Django 用于 SMS 应用程序(我昨天开始学习 Python,要温柔)。

以下是我需要帮助的内容:当 Twilio 将传入的 SMS 消息发送到我的 URL 时,我希望我的应用程序自动将传入的电话号码、日期/时间和传入的消息添加到某些列表中。我怎么做?

谢谢!

4

2 回答 2

2

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 发出请求。

从那时起,它看起来与来自 Web 浏览器的请求完全相同。

这个问题将帮助您了解 Django Capturing url 参数在 request.GET 中的细节

发件人应该有您需要的所有参数。

于 2011-07-27T23:47:28.527 回答
0

我刚刚在GitHub 上使用 Twilio 和 Django 编写了一个示例应用程序,但这是您正在寻找的具体答案。

对于这个例子,我在我的服务器上使用“/reply/”URL(并告诉 Twilio 这是 POST 到的地方)

在 urls.py 中,您只需进行标准映射: url(r'^reply', 'twilio_sms.views.sms_reply'),

这是对用户的一个非常基本的响应,响应 Twilio 服务器的期望。def sms_reply(request): 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 响应的,我通常建议这样做,但是对于代码示例来说,它的信息太多了。

于 2011-12-23T01:25:14.537 回答