如何使用python获取短信发件人信息?

时间:2011-07-27 23:33:24

标签: python django sms twilio

我正在使用Twilio和Django进行短信应用(昨天我开始学习Python,温柔)。

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

谢谢!

2 个答案:

答案 0 :(得分:2)

Twilio在请求您的网址时将其作为“发件人”参数发送。文档位于: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的具体细节 Capturing url parameters in request.GET

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

答案 1 :(得分:0)

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

对于这个例子,我在我的服务器上使用'/ reply /'URL(并告诉Twilio这是POST的位置)

在urls.py中你只是要做一个标准的映射: url(r'^ reply','twilio_sms.views.sms_reply'),

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