我很难理解 Twilio。我已经阅读了文档,并计划再次阅读它们,但我希望得到一些指示。我正在为我的应用程序使用 Ruby on Rails。
我想要做的是能够接收来自用户的带有一些正文的文本消息。然后,我希望能够以某种方式将该文本保存在我的模型中。我该怎么做呢?
谢谢!
我很难理解 Twilio。我已经阅读了文档,并计划再次阅读它们,但我希望得到一些指示。我正在为我的应用程序使用 Ruby on Rails。
我想要做的是能够接收来自用户的带有一些正文的文本消息。然后,我希望能够以某种方式将该文本保存在我的模型中。我该怎么做呢?
谢谢!
Twilio 号码可以与回调 URL 相关联,当它接收到 SMS 时,它将向该回调 URL 发送 POST 请求。应自定义此回调 URL 以指向您的应用程序中将用于处理 SMS 的控制器。从那里,您可以阅读 params 哈希以了解收到的 SMS 消息的详细信息。注意:params['From']
和params['Body']
。将这些参数中的文本存储到您喜欢的任何模型中!
Twilio 回调 URL
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
用户2515526,
最近我建立了我的第一个 Rails 应用程序,它利用了一些 Twilio 功能 - 主要是接收、处理和响应 SMS 消息的功能 - 我同意:从菜鸟的角度来看,Twillio 文档绝对可以清理 ^^。
我发现这个git repo非常有帮助。这个家伙基本上会引导你完成几乎所有你需要知道的起床和跑步。
您可以像从 Web 应用程序的文本框中获取内容一样获取短信正文。在python中,它将是
mybody = request.args.get('body')
如果您使用的是 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": ""
}