我正在开展一个YRS 2013项目,并希望使用Twilio。我已经设置了一个价值超过100美元的Twilio账户。我正在开发一个使用外部API的项目,并在位置和日期附近查找事件。该项目使用Sinatra(将部署到Heroku)用Ruby编写。
我想知道你们是否可以指导我如何处理这种情况:用户发送我的Twilio帐户号码(该消息将包含位置和日期数据),我们处理该短信的正文,以及将结果发回给要求他们的号码。我不知道从哪里开始;例如,如果Twilio会处理某些任务,或者我只是使用Twilio的API并检查smss并返回结果。我考虑不使用数据库。
你能指导我如何处理这项任务吗?
我需要在周五提出这个项目;所以我的时间紧迫!感谢您的帮助。
答案 0 :(得分:1)
他们对如何完成大部分工作有一些很好的documentation。
当您收到文本时,您应该将其解析为您需要的格式
将它放入现有项目中,当它返回区域中的一个或多个事件时,您需要检查字符串由于twilio限制消息限制为160个字符或更少的约束所需的时间。
确保您优雅地分割邮件,而不是在事件中间。如果你被归还“波士顿凯尔特人队比赛”,“坚果饼干比赛”。你想确保如果两个事件都不能放在一条消息中,第一条消息显示“波士顿凯尔特人游戏,另一个文字进入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
在此示例中,索引操作从Twilio接收POST。它抓取邮件正文和发件人的电话号码并记录它。从Twilio POST中检索信息就像查看params hash一样简单
{
"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"
}