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

如何让Python开发的Discord Bot调用其他Discord Bot的命令?

解决Discord Bot触发音乐Bot播放指令的问题
  • 核对音乐Bot的指令参数格式
    不同音乐Bot的/play指令参数规则可能不同,比如有些参数名是query而非prompt,或者不需要前缀标识。先手动在聊天窗口输入/play,通过Discord的自动补全确认正确的参数名和格式,确保你的Bot发送的指令完全匹配音乐Bot的要求。

  • 用Slash Command API发送指令,而非纯文本
    直接发送/play prompt:[SONG_NAME]只是普通文本消息,音乐Bot只会监听真正的斜杠交互指令,不会识别文本里的斜杠字符串。你需要通过discord.py的API构造并发送标准的Slash Command,示例代码如下:

    import discord
    from discord import app_commands
    
    async def trigger_music_play(interaction: discord.Interaction, song_name: str):
        # 替换为目标音乐Bot的ID
        music_bot_id = 123456789012345678
        music_bot = interaction.guild.get_member(music_bot_id)
        if not music_bot:
            await interaction.response.send_message("音乐Bot未加入当前服务器")
            return
    
        # 构造与音乐Bot匹配的指令参数
        command_payload = app_commands.CommandData(
            name="play",
            type=discord.AppCommandType.chat_input,
            options=[
                app_commands.Option(
                    name="prompt",  # 必须和音乐Bot的参数名完全一致
                    type=discord.AppCommandOptionType.string,
                    value=song_name
                )
            ]
        )
    
        # 发送交互指令请求
        await interaction.client.http.interaction_create(
            channel_id=interaction.channel.id,
            guild_id=interaction.guild.id,
            data=command_payload.to_dict()
        )
    

    注意:需确保你的Bot拥有发送应用指令的权限,且目标音乐Bot未限制仅人类用户触发指令。

  • 检查权限与Bot交互限制
    部分音乐Bot默认禁止其他Bot触发自身指令,可前往音乐Bot的官方设置页面(若有)开启跨Bot交互权限;同时确认你的Bot在服务器内拥有发送消息、使用应用指令的基础权限。

  • 测试前缀指令的可能性
    少数音乐Bot支持监听带特定前缀的文本指令(比如!play [歌曲名]),先手动发送这类前缀指令验证音乐Bot是否响应,若有效,再让你的Bot发送对应的前缀指令字符串即可。

内容的提问来源于stack exchange,提问作者ElayA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 00:10:36