Discord斜杠头像命令报错DiscordAPIError: Unknown Webhook怎么解决?
错误原因
你遇到的DiscordAPIError: Unknown Webhook(错误码10015)是因为Discord斜杠命令交互的初始响应规则要求:
- 交互触发后3秒内必须完成首次响应,否则交互对应的临时webhook会直接失效
followUp是用于首次响应完成后追加发送消息的方法,不能直接用作首次交互响应
修复方法
二选一即可:
方案1:直接替换响应方法
如果你不需要延迟处理,直接把inter.followUp改成inter.reply,修改后代码如下:
const Client = require("../../bot").Client const Discord = require('discord.js'); module.exports.run = async (inter) => { const user = inter.options.getUser('target') const embed = new Discord.MessageEmbed() .setTitle(`${user.username}'s Avatar`) .setColor('#FFA500') .setImage(user.displayAvatarURL({ dynamic: true, size: 1024 })) .setTimestamp() .setDescription(`[Png](${user.avatarURL({ format: 'png' })}) | [Webp](${user.avatarURL({ dynamic: true })}) | [Jpg](${user.avatarURL({ format: 'jpg' })})`) .setFooter(`Requested by: ${inter.user.username}`, inter.user.displayAvatarURL({ dynamic: true })); // 把followUp改成reply await inter.reply({ embeds: [embed] }); } module.exports.help = { name: 'avatar', }
方案2:先延迟响应再回复
如果你的命令后续可能有更耗时的操作,先调用deferReply延长交互有效期到15分钟,再用followUp回复:
const Client = require("../../bot").Client const Discord = require('discord.js'); module.exports.run = async (inter) => { // 先触发延迟响应 await inter.deferReply(); const user = inter.options.getUser('target') const embed = new Discord.MessageEmbed() .setTitle(`${user.username}'s Avatar`) .setColor('#FFA500') .setImage(user.displayAvatarURL({ dynamic: true, size: 1024 })) .setTimestamp() .setDescription(`[Png](${user.avatarURL({ format: 'png' })}) | [Webp](${user.avatarURL({ dynamic: true })}) | [Jpg](${user.avatarURL({ format: 'jpg' })})`) .setFooter(`Requested by: ${inter.user.username}`, inter.user.displayAvatarURL({ dynamic: true })); await inter.followUp({ embeds: [embed] }); } module.exports.help = { name: 'avatar', }
内容的提问来源于stack exchange,提问作者Vetlix
相关产品推荐
相关产品推荐

