2011-07-27 61 views
2

我使用Twilio和Django進行短信應用(我昨天開始學習Python,很溫和)。如何使用python獲取SMS發件人信息?

以下是我需要幫助的信息: 當Twilio向我的URL發送傳入的SMS消息時,我希望我的應用程序自動將傳入的電話號碼,日期/時間和傳入消息添加到某些列表中。我怎麼做?

謝謝!

回答

2

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

0

我剛剛在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響應,我一般會建議這個響應,但是對於代碼示例來說,它的信息太多了。