You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在用户连接Twilio Sandbox后让聊天机器人发送首条自动消息

功能实现方案

你当前代码已经预留了欢迎语的匹配逻辑,只需要调整判断逻辑的优先级,即可实现首次连接自动发送操作指引的需求,修改后的完整代码如下:

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'])
    message = nil
    # 首次会话/打招呼触发引导消息,优先级最高
    greetings = ['oi', 'olá', 'ola', '.', 'hi', 'hey', 'eae', 'eai', 'salve']
    if !session[:track] && greetings.include?(body.strip.downcase)
      message = "请输入歌曲名加歌手名即可添加到播放列表,示例:Bad Michael Jackson"
    end

    if session[:track]
      answer = body.split(' ').first.downcase.strip
      confirm_keywords = ['yes', 'yeah', 'yep', 'yup', '👍', '👍🏻', '👍🏼', '👍🏿', '👍🏽', '👍🏾', 'sim', 's', 'ss', 'com certeza', 'claro']
      if confirm_keywords.include? answer
          message = "好的,正在将歌曲添加到播放列表,播放列表地址: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 = "你想添加哪首歌曲?"
      end
    end

    if !message
      track = spotify.track_search(body)
      if track
        session[:track] = track.uri
        message = "你要添加的是#{track.artists.map(&:name).to_sentence}的《#{track.name}》吗?"
      else
        message = "没有搜索到和'#{body}'相关的歌曲,请换个关键词重试。"
      end
    end

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

修改说明

  • 将欢迎语判断放到逻辑最上层,优先级最高,用户首次发送打招呼类消息时会直接返回操作指引
  • 保留原有全部歌曲搜索、确认、添加的逻辑,不会影响已上线功能的正常运行
  • 支持多语言打招呼关键词,适配不同用户的使用习惯

内容的提问来源于stack exchange,提问作者Rafael de Oliveira Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 16:15:00