我正在使用Twilio和Django进行短信应用(昨天我开始学习Python,温柔)。
这是我需要帮助的: 当Twilio向我的URL发送传入的SMS消息时,我希望我的应用程序自动将传入的电话号码,日期/时间和传入消息添加到某些列表中。我该怎么做?
谢谢!
答案 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响应,我建议一般使用它,但对于代码示例,它是太多的信息。