Twilio: реагирование на ввод пользователя с несколькими различными сообщениями - PullRequest
0 голосов
/ 20 февраля 2019

Я работаю над чат-ботом 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

Мы бы по возможности не создавали фоновое задание работник / хрон, но приветствуем любые и все предложенные решения.

1 Ответ

0 голосов
/ 21 февраля 2019

Я думаю, что ваш вопрос больше о том, как проектировать синхронные (ответ webhook) против асинхронных ответов / сообщенийЯ не использовал twiml, но концепции все те же.

Если вы не хотите использовать фоновое задание, отправьте первые сообщения N-1 с использованием API с задержкой по времени между ними и последнее сообщение в качестве ответа.

Если вы в порядке с фоновыми заданиями, отправьте 1-е сообщение в качестве ответа и поставьте в очередь задание для отправки оставшихся сообщений с помощью API.

...