2013-08-07 2 views
0

Я работаю над проектом YRS 2013 и хотел бы использовать Twilio. У меня уже есть учетная запись Twilio, созданная на сумму более 100 долларов. Я работаю над проектом, который использует внешний API и находит события рядом с местоположением и датой. Проект написан на Ruby с использованием Sinatra (который будет развернут в Heroku).Как мне создать этот сценарий в Twilio?

Мне интересно, можете ли вы, ребята, узнать, как подойти к этому сценарию: пользователь набирает номер моей учетной записи Twilio (сообщение будет содержать данные о местоположении и дате), мы обрабатываем тело этого sms, и отправьте результаты на номер, который их просил. Я не уверен, с чего начать; например, если Twilio будет обрабатывать некоторые из этих задач, или я бы просто использовал API Twilio и проверил smss и вернул результаты. Я думаю о том, чтобы не использовать базу данных.

Не могли бы вы посоветовать мне, как подойти к этой задаче?

Мне нужно представить проект в пятницу; поэтому я нахожусь в сжатые сроки! Спасибо за нашу помощь.

+0

Просто Суммируя все это, пользователь текстов номер и они получают текст обратно с указанием места и времени. Вы обрабатываете несколько событий или это только одно событие? –

+0

Пользователь называет местоположение и время, и мы отправляем назад события, происходящие в это время и в этом месте. Что вы подразумеваете под несколькими событиями? – raf

+0

Значит, пользователь будет писать Бостон 5 вечера, и ваша система вернет текстовое сообщение с событиями x, y и z в это время? Откуда вы будете получать свои события? почему вы пытаетесь держаться подальше от базы данных? Какую структуру данных вы планируете использовать для хранения событий, времени и местоположений? Планируете ли вы, чтобы они реагировали определенным образом, чтобы облегчить ответ? (Например, Город, время (военное или стандартное (если стандартное их поставили PM или AM после?))) –

ответ

1

У них есть отличные documentation о том, как это сделать.

Когда вы получите текст, который вы должны разобрать его в формат вам нужно

Положите его в существующий проект, и когда он возвращается событие или события в области, которую нужно проверить, как долго строка из-за ограничение, которое twilio ограничивает сообщениями до 160 символов или меньше.

Убедитесь, что вы разделили сообщение элегантно, а не в середине события. Если вы были возвращены «Бостонская игра Celtics», «The Nut Cracker Play». вы хотите убедиться, что если оба события не могут быть помещены в одно сообщение, в первом сообщении говорится: «Бостонская игра Celtics, другой текст, приходящий через 1 секунду» или что-то подобное.


Для того, чтобы получить текстовое сообщение с мобильного устройства, вы должны выставить конечную точку, можно добраться на Twilio. Ниже приведен пример

class ReceiveTextController < ActionController 
    def index 
    # let's pretend that we've mapped this action to 
    # http://localhost:3000/sms in the routes.rb file 

    message_body = params["Body"] 
    from_number = params["From"] 

    SMSLogger.log_text_message from_number, message_body 
    end 
end 

В этом примере действие индекса получает POST из Twilio. Он захватывает тело сообщения и номер телефона отправителя и регистрирует его. Извлечение информации из Twilio POST так просто, как глядя на Params хэш

{ 
    "AccountSid"=>"asdf876a87f87a6sdf876876asd8f76a8sdf595asdD", 
    "Body"=> body, 
    "ToZip"=>"94949", 
    "FromState"=>"MI", 
    "ToCity"=>"NOVATO", 
    "SmsSid"=>"asd8676585a78sd5f548a64sd4f64a467sg4g858", 
    "ToState"=>"CA", 
    "To"=>"5555992673", 
    "ToCountry"=>"US", 
    "FromCountry"=>"US", 
    "SmsMessageSid"=>"hjk87h9j8k79hj8k7h97j7k9hj8k7", 
    "ApiVersion"=>"2008-08-01", 
    "FromCity"=>"GRAND RAPIDS", 
    "SmsStatus"=>"received", 
    "From"=>"5555992673", 
    "FromZip"=>"49507" 
} 

Source

+0

Да! Как я могу получить тело входящего SMS? – raf

+0

Это довольно просто, я обновил быстрый пример и ссылку на учебник, который я использовал. –

+0

Это замечательно, большое вам спасибо! – raf