Как чат-бот отправляет первое автоматическое сообщение после подключения пользователя к изолированной среде

#ruby #twilio

#ruby #twilio

Вопрос:

Я пытаюсь разработать чат-бота для начинающих, который заполняет плейлист spotify песнями, которые люди добавляют через Whatsapp, но я хочу, чтобы, когда человек отправляет первое сообщение для подключения к песочнице, он получал автоматическое сообщение бота, в котором рассказывалось, как добавлять песни в список воспроизведения.

Чат-бот работает, если вы хотите лучше понять, вы можете перейти к интерфейсу и следить за ходом чат-бота: https://hellz-i-fy.herokuapp.com /

Код, который создает сообщения, выглядит следующим образом (PS: я использую twilio):

 class Twilio::MessagesController < ApplicationController
  skip_before_action :verify_authenticity_token

  def create
    body = params['Body']
    spotify = Spotify.new(ENV['SPOTIFY_USER_ID'], ENV['SPOTIFY_TOKEN'], ENV['SPOTIFY_REFRESH_TOKEN'])

    # if ['oi', 'olá', 'ola', '.', 'hi', 'hey', 'eae', 'eai', 'salve'].include? answer
    #   message = "Digite o nome da música seguido do artista para adicioná-la à playlist. _*Ex.: Bad Michael Jackson*_"

    if session[:track]
      answer = body.split(' ').first.downcase.strip
      if ['yes', 'yeah', 'yep', 'yup', '👍', '👍🏻', '👍🏼', '👍🏿', '👍🏽', '👍🏾', 'sim', 's', 'ss', 'com certeza', 'claro'].include? answer
          message = "OK, Adicionando sua música à playlist agora. Acesse a playlist aqui: https://open.spotify.com/playlist/7qdUS3dh2mQy65DTfHlZiP?si=3b866e7162b44aa0"
          spotify.add_to_playlist(ENV['SPOTIFY_PLAYLIST_ID'], session[:track])
          session[:track] = nil
      elsif ['no', 'nah', 'nope', '👎', ' 👎🏻', '👎🏼', '👎🏽', '👎🏾', '👎🏿', 'não', 'n', 'nn', 'de jeito nenhum', 'nah', 'nem', 'sai fora'].include? answer
          session[:track] = nil
          message = "Qual música você gostaria de adicionar?"
      end
    end

    if !message
      track = spotify.track_search(body)
      if track
        session[:track] = track.uri
        message = "Gostaria de adicionar a música _*#{track.name}*_ de _*#{track.artists.map(amp;:name).to_sentence}*_?"
      else
        message = "Não consegui achar nenhuma música ao pesquisar por '#{body}'. Tente de outra forma."
      end
    end

    response = Twilio::TwiML::MessagingResponse.new
    response.message(body: message)
    render xml: response.to_xml
  end    
end
 

Ответ №1:

Евангелист-разработчик Twilio здесь.

Изолированная среда Twilio для использования API WhatsApp — это инструмент тестирования, который позволяет пользователям Twilio использовать один номер WhatsApp для первоначального тестирования. Он не предназначен для производственного использования, поэтому в рабочей среде нет события «добавить в изолированную среду», которое можно использовать для отправки приветственного сообщения.

Вместо этого вам нужно либо заставить вашего пользователя отправить начальное сообщение. Или вы можете попросить их ввести свой номер WhatsApp в вашем приложении и подписаться на получение сообщений, а затем отправить им шаблонное сообщение в качестве приветствия.