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

使用discord.js实现/warn命令时DM用户遇令牌错误求助

问题解决:Discord.js /warn命令发送DM时出现"Expected token to be set for this request"错误

错误原因

你在命令模块中重新创建了一个未登录的Client实例,Discord API请求需要已登录客户端的token验证,这个新实例没有配置有效token,因此触发该错误。命令模块无需单独初始化Client,应直接使用交互对象提供的已登录客户端实例。

修复步骤

  1. 删除冗余的Client初始化代码:移除命令文件中新建Client的相关代码。
  2. 使用已登录客户端:通过interaction.client获取bot主程序中已完成登录的Client实例。
  3. 优化DM发送逻辑:直接调用目标User对象的send方法,并添加异常处理,避免因用户关闭DM导致命令崩溃。

修复后的代码

const { SlashCommandBuilder, PermissionFlagsBits } = require('discord.js');

module.exports = {
    data: new SlashCommandBuilder()
        .setName('warn')
        .setDescription('Choisi une qqun à warn.')
        .addUserOption(option =>
            option
                .setName('cible')
                .setDescription('Le membre à warn')
                .setRequired(true))
        .addStringOption(option =>
            option
                .setName('raison')
                .setDescription('La raison du warn'))
        .setDefaultMemberPermissions(PermissionFlagsBits.BanMembers)
        .setDMPermission(false),
    async execute(interaction) {
        const target = interaction.options.getUser('cible');
        const reason = interaction.options.getString('raison') || 'Aucune raison fournie';

        try {
            // 直接通过User对象发送DM
            await target.send(`Vous avez été warn. Raison : ${reason}`);
            await interaction.reply(`${target.username} a été warn avec succès !`);
        } catch (error) {
            // 处理无法发送DM的异常情况
            await interaction.reply(`Impossible d'envoyer un DM à ${target.username}. Vérifiez si ses messages privés sont ouverts.`);
            console.error('Erreur lors de l\'envoi du DM :', error);
        }
    },
};

额外注意事项

确保你的bot主文件已正确初始化并登录Client,示例主文件结构如下:

const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
const { token } = require('./config.json');

// 加载命令、注册事件等逻辑...

client.login(token);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:55:46