【问题标题】:How would I design this scenario in Twilio?我将如何在 Twilio 中设计这个场景?
【发布时间】:2013-08-08 04:12:42
【问题描述】:

我正在处理一个YRS 2013 项目并希望使用 Twilio。我已经设置了一个 Twilio 帐户,上面有超过 100 美元的资金。我正在开发一个使用外部 API 并查找位置和日期附近的事件的项目。该项目是使用 Sinatra 用 Ruby 编写的(将部署到 Heroku)。

我想知道你们是否可以指导我如何处理这种情况:用户向我的 Twilio 帐户的号码发送短信(该消息将包含位置和日期数据),我们处理该短信的正文,然后将结果发送回要求他们的号码。我不知道从哪里开始;例如,如果 Twilio 将处理其中的一些任务,或者我将只使用 Twilio 的 API 并检查 smss 并返回结果。我正在考虑不使用数据库。

您能指导我如何完成这项任务吗?

我需要在星期五展示这个项目;所以我的期限很紧!感谢我们的帮助。

【问题讨论】:

  • 总而言之,用户发短信给一个号码,然后他们会收到一条包含位置和时间的短信。您是在处理多个事件还是这只是一个事件?
  • 用户向位置和时间发送短信,我们将在该时间和该位置发生的事件发回。多个事件是什么意思?
  • 所以用户会在下午 5 点给波士顿发短信,而您的系统会返回一条短信,其中包含当时正在发生的事件 x、y 和 z?你会从哪里得到你的活动?你为什么要远离数据库?您正在考虑使用哪种数据结构来存储事件、时间和位置?您是否打算让他们以某种方式回复以使其更容易回复? (如城市,时间(军事或标准(如果标准他们将 PM 或 AM 放在后面?)))
  • 我写的项目已经完成了。它是一个网络应用程序。在那里,用户可以输入位置和日期,Web 应用程序将从与用户描述的参数匹配的外部 API 获取数据并显示它们。我的处理系统可以正常工作。我需要开始工作的只是短信方面的事情。我只是不确定如何处理 SMS 消息背后的设计。

标签: ruby sms sinatra twilio


【解决方案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 哈希一样简单

{
  "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

【讨论】:

  • 是的!我将如何获得传入短信的正文?
  • 这很简单,我更新了一个快速示例和我使用的教程的链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-24
  • 2018-10-18
  • 1970-01-01
相关资源
最近更新 更多