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

如何在disnake中创建无需指定服务器ID的全局斜杠命令

解决disnake全局斜杠命令无法全局可用的问题

确认机器人邀请权限

必须确保机器人的邀请链接包含applications.commands权限范围,正确的邀请链接需包含:
https://discord.com/oauth2/authorize?client_id=你的机器人ID&permissions=所需权限&scope=bot%20applications.commands
若之前未添加该范围,需重新邀请机器人至服务器。

显式同步全局命令

disnake不会自动同步全局斜杠命令,需在代码中主动触发同步操作:

全局同步(正式环境)

@bot.event
async def on_ready():
    print(f"已登录为 {bot.user}")
    # 提交全局命令同步请求,Discord缓存可能导致1-2小时后生效
    await bot.sync_commands()
    print("全局命令同步请求已提交")

服务器级同步(调试用,快速生效)

如果需要立即测试,可先同步到单个服务器(几分钟内生效),测试完成后再切换为全局同步:

# 替换为你的测试服务器ID
TEST_GUILD = 123456789012345678

@bot.event
async def on_ready():
    print(f"已登录为 {bot.user}")
    await bot.sync_commands(guild_ids=[TEST_GUILD])
    print("测试服务器命令已同步")

检查代码细节

  • 你的命令定义名称是хост,但日志打印的是/хостинг,建议保持名称一致,避免混淆。
  • 确保使用最新版disnake,旧版本可能存在同步bug:
    pip install --upgrade disnake
    

验证同步结果

登录Discord开发者门户,进入你的机器人应用→「Commands」→「Global Commands」,查看是否已成功上传命令。若未显示,说明同步操作未执行或失败。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:10:28