Twilio: получайте SMS и делайте что-нибудь с телом

Мне сложно понять Twilio. Я прочитал документы и планирую прочитать их снова, но я надеялся на некоторые подсказки. Я использую Ruby on Rails для своего приложения.

Что я хочу сделать, так это иметь возможность получать текстовое сообщение от пользователя с некоторым основным текстом. Затем я хочу иметь возможность каким-то образом сохранить этот текст в моей модели. Как мне это сделать?

Спасибо!


person tverghis    schedule 02.09.2013    source источник
comment
Евангелист Twilio здесь. Вы просмотрели краткие руководства Twilio SMS. Вероятно, это лучший способ разобраться в концепциях: twilio.com/docs/quickstart/ruby / sms Если у вас возникли проблемы с началом работы, я хотел бы услышать, что, по вашему мнению, мы могли бы сделать лучше. Напишите мне на devin [at] twilio [dot] com   -  person Devin Rader    schedule 03.09.2013
comment
Привет, Девин, в конце концов мне удалось пройти через быстрый старт, и они определенно помогли ТОННУ. Спасибо и Twilio за создание такого замечательного набора документов!   -  person tverghis    schedule 03.09.2013


Ответы (4)


Номер Twilio можно связать с URL-адресом обратного вызова, на который он будет отправлять POST-запрос при получении SMS. Этот URL-адрес обратного вызова следует настроить так, чтобы он указывал на контроллер в вашем приложении, который вы будете использовать для обработки SMS. Оттуда вы можете просто прочитать хэш params для получения подробной информации о полученном SMS-сообщении. Примечательно: params['From'] и params['Body']. Сохраните текст из этих параметров в любую понравившуюся модель!

URL обратного вызова 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
person pdobb    schedule 02.09.2013

user2515526,

Недавно я установил свое первое приложение Rails, которое использует некоторую функциональность Twilio - в первую очередь, получение, обработку и ответ на SMS-сообщения - и я согласен: с точки зрения новичка, документация Twillio определенно может быть прояснена ^^.

Я нашел это репозиторий git чрезвычайно полезным. По сути, этот парень проведет вас через все, что вам нужно знать, чтобы приступить к работе.

person cheshireoctopus    schedule 22.10.2013

Вы можете получить тело sms-сообщения так же, как если бы вы получали контент из текстового поля в веб-приложении. В python это было бы

mybody = request.args.get('body')
person azdonald    schedule 09.09.2013

Если вы используете 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": ""
}
person dpigera    schedule 22.04.2016