我很难理解Twilio。我已经阅读了文档,并计划再次阅读它们,但我希望得到一些指示。我正在使用Ruby on Rails作为我的应用程序。
我想要做的是能够从具有正文文本的用户接收短信。然后,我希望能够在模型中保存那些文本。我该怎么做呢?
谢谢!
答案 0 :(得分:5)
Twilio号码可以与回调URL相关联,它会在收到短信时发送POST请求。应该自定义此回调URL以指向您将用于处理SMS的应用程序中的控制器。从那里,您可以阅读params哈希,了解收到的SMS消息的详细信息。值得注意的是:params['From']
和params['Body']
。将这些参数中的文本存储到您喜欢的任何模型中!
Twilio回调网址
http<s>://<your domain.com>/sms
路线
resource :sms, only: :create
控制器
class SmsController < ApplicationController
skip_before_filter :force_ssl # You may need this if your app uses https normally
def create
# Do something with params['From'] -- contains the phone number the SMS came from
# Do something with params['Body'] -- contains the text sent in the SMS
# <Reponse/> is the minimum to indicate a "no response" from Twilio
render xml: "<Response/>"
end
end
答案 1 :(得分:1)
user2515526,
最近我设置了我的第一个Rails应用程序,该应用程序利用了一些Twilio功能 - 主要是接收,处理和响应SMS消息 - 我同意:从菜鸟的角度来看,Twillio文档肯定可以清除^^
我发现this git repo非常非常有帮助。这个家伙基本上会带你完成所有你需要知道的起床和跑步。
答案 2 :(得分:0)
您可以像获取Web应用程序中文本框中的内容一样获取短信的正文。 在python中,它将是
mybody = request.args.get('body')
答案 3 :(得分:0)
如果你使用的是Node Express,这里有一个适用于我的代码片段:
app.post('/respondToMessage', function(req, res) {
var twiml = new twilio.TwimlResponse();
console.log('sms message =', req.body.Body);
twiml.message('respondToMessage');
res.type('text/xml');
res.send(twiml.toString());
});
您正在从通常如下所示的响应中解析JSON属性 Body :
{
"ToCountry": "",
"ToState": "",
"SmsMessageSid": "",
"NumMedia": "",
"ToCity": "",
"FromZip": "",
"SmsSid": "",
"FromState": "",
"SmsStatus": "",
"FromCity": "",
"Body": "The attribute you're parsing for",
"FromCountry": "",
"To": "",
"MessagingServiceSid": "",
"ToZip": "",
"NumSegments": "",
"MessageSid": "",
"AccountSid": "",
"From": "+",
"ApiVersion": ""
}