【问题标题】:Twilio: Responding to user input with multiple distinct messagesTwilio:使用多个不同的消息响应用户输入
【发布时间】:2019-02-20 20:17:06
【问题描述】:

我正在开发一个 twilio-programable-sms 聊天机器人,它需要在第一次对话开始时向用户提供大量信息。目前,我们已经写了大约 562 个字符。对于我们的一些用户,这会被分成 160 个字符的块,这些字符不一定会以正确的顺序显示在他们的 SMS 应用程序中。

为了解决这个问题,我们试图将我们的消息分解为 160 个字符或更少的不同消息,每个消息一个接一个地发送。

但是,我和我的队友目前不确定如何实现这一点。我们的应用程序当前编写为为从用户收到的每条消息提供一个 twiml 响应。我一直无法找到一种方法来创建一个表示许多连续消息的 twiml 响应,而且我们提出的理论解决方案感觉很老套和有缺陷。

为了演示,目前我们的代码如下所示。如您所见,当一个新用户发送关键字“开始”时,我们将 4 条消息连接到一个长文本响应中。但是,我们希望每条消息都单独发送,一个接一个,相隔大约一两秒。

    case @body
    when "start"
      if !!@user
        CreateMessage::SubscriptionMessage.triage_subscribable_type(!!@user)
      else
        [
          CreateMessage::AlphaMessage.personalized_welcome(@conversation.from, true),
          CreateMessage::SubscriptionMessage.introduce_bcd,
          CreateMessage::SubscriptionMessage.for_example,
          CreateMessage::SubscriptionMessage.intvite_to_start
        ].join("\n\n")
      end

如果可能,我们希望避免创建后台工作人员/cron 作业 - 但欢迎任何和所有建议的解决方案。

【问题讨论】:

    标签: ruby-on-rails ruby twilio twilio-api


    【解决方案1】:

    我认为您的问题更多是关于如何设计同步(webhook 响应)与异步响应/消息。我没用过 twiml 但概念是一样的。

    如果您不想使用后台作业,则使用 API 发送第一条 N-1 条消息,中间有时间延迟,最后一条消息作为响应。

    如果您可以使用后台作业,则发送第一条消息作为响应并排队作业以使用 API 发送剩余消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 2013-01-11
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多