#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 в вашем приложении и подписаться на получение сообщений, а затем отправить им шаблонное сообщение в качестве приветствия.