Discord机器人无法检测删除频道用户的问题求助
解决Discord机器人频道删除检测的API错误问题
错误原因
你遇到的DiscordAPIError[50035]是因为传递给fetchAuditLogs的type参数用了字符串"CHANNEL_DELETE",但Discord API要求该参数必须是整数类型的操作码。不同版本的Discord.js对审核日志类型的处理逻辑不同:
- Discord.js v14及以上版本需要用
AuditLogEvent枚举来指定操作类型 - v13及以下旧版本则直接传入对应的整数值即可
修复方案
方案1:Discord.js v14+(推荐)
先导入AuditLogEvent枚举,再用枚举值替代字符串参数:
const { Client, AuditLogEvent } = require('discord.js'); const client = new Client({ intents: [/* 需包含Guilds、GuildChannels等必要权限 */] }); client.on('channelDelete', async (channel) => { const channelDeleteId = channel.id; // 使用AuditLogEvent.ChannelDelete作为type参数 const auditLogs = await channel.guild.fetchAuditLogs({ type: AuditLogEvent.ChannelDelete }); const channelDeleteEntry = auditLogs.entries.find(entry => entry.target.id === channelDeleteId); if (channelDeleteEntry) { const deleter = channelDeleteEntry.executor; console.log(`User ${deleter.username} deleted channel ${channel.name} at ${channelDeleteEntry.createdAt}`); // 执行踢人操作(确保机器人拥有踢人权限) if (deleter && !deleter.bot) { // 跳过机器人账号,避免误踢 try { await channel.guild.members.kick(deleter, '删除服务器频道'); console.log(`已踢出用户 ${deleter.username}`); } catch (err) { console.error('踢人失败:', err); } } } }); client.login('你的机器人Token');
方案2:Discord.js v13及以下版本
直接传入CHANNEL_DELETE对应的整数值12:
client.on('channelDelete', async (channel) => { const channelDeleteId = channel.id; // 用整数12替代字符串"CHANNEL_DELETE" const auditLogs = await channel.guild.fetchAuditLogs({ type: 12 }); const channelDeleteEntry = auditLogs.entries.find(entry => entry.target.id === channelDeleteId); if (channelDeleteEntry) { const deleter = channelDeleteEntry.executor; console.log(`User ${deleter.username} deleted channel ${channel.name} at ${channelDeleteEntry.createdAt}`); // 踢人逻辑 if (deleter && !deleter.bot) { try { await channel.guild.members.kick(deleter, '删除服务器频道'); console.log(`已踢出用户 ${deleter.username}`); } catch (err) { console.error('踢人失败:', err); } } } });
额外注意事项
- 确保机器人拥有查看审核日志和踢人的服务器权限
- 处理
executor为null的情况(比如系统自动删除或日志过期) - 建议添加权限检查,避免尝试踢掉服务器管理员等高权限用户
内容的提问来源于stack exchange,提问作者Nathan Liwang
相关产品推荐
相关产品推荐

