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

问题描述:

我使用Twilio和Django进行短信应用(我昨天开始学习Python,很温和)。如何使用python获取SMS发件人信息?

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

谢谢!

Twilio在请求您的URL时将其作为“From”参数发送。该文档是:http://www.twilio.com/docs/api/twiml/sms/message

它将类似于此代码,我用python(而不是Django)在webapp中写这个。

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>') 

UPDATE:

当我拿到我的电话和发送短信到XXX-XXX-XXXX,twilio将收到的文本,然后对我配置的URL的请求。

从这一点看,它看起来和来自网络浏览器的请求完全一样。

这个问题会帮助你的具体情况和Django Capturing url parameters in request.GET

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

+0

对不起,如果这是一个愚蠢的问题,但我怎么连接所有Twilio的请求我的网址?我不知道代表Twilio要求我的网址代表什么意思。 MainHandler是一个函数吗?而Twilio的要求是该功能的输入? – Kevin

+0

在您的twilio帐户中,您设置了一个URL,您希望Twilio在有传入的SMS消息时请求该URL。该网址将包含“From”参数(以及更多)。 – mcotton

+0

感谢您的回复 – Kevin

我刚刚在GitHub上写了一个使用Twilio和Django的示例应用程序,但以下是您要查找的具体答案。

在这个例子中,我使用“/答复/” URL我的服务器上(和告诉Twilio这就是张贴到)

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

下面是对用户的一个非常基本的回应,回应了Twilio服务器的期望。 DEF sms_reply(请求): 如果request.method == 'POST': PARAMS = request.POST的 电话=应用re.sub( '+ 1', '',则params [ '从'])

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

在我的代码中,我实际上使用一个库来构建XML响应,我一般会建议这个响应,但是对于代码示例来说,它的信息太多了。