【问题标题】:How to get SMS sender info using python?如何使用python获取短信发件人信息?
【发布时间】:2011-07-27 23:33:23
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: python django sms twilio


    【解决方案1】:

    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 的细节 Capturing url parameters in request.GET

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

    【讨论】:

    • 对不起,如果这是一个愚蠢的问题,但我如何将所有这些与 Twilio 对我的 URL 的请求联系起来?我不知道 Twilio 请求我的 URL 在代码方面意味着什么。那 MainHandler 是一个函数吗?而 Twilio 的请求是该函数的输入?
    • 在您的 twilio 帐户中,您设置了一个您希望 twilio 在收到 SMS 消息时请求的 URL。该 URL 将带有“From”参数(以及更多)。
    • 感谢您的回复,我明白了。我要问的是如何让程序知道它应该从 Twilio 的请求中获取该信息?有点像你必须有某种 raw_input('Type your name here:') 语句才能从用户那里获得输入。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多