discord.js如何禁用“interaction failed”提示 无需使用inter.reply回复交互
解决方法
Discord要求所有交互事件必须在触发后3秒内收到至少一次响应,否则客户端就会弹出「interaction failed」的提示。你不需要用inter.reply()发送实际内容,只要先给交互返回一个空回执,后续再调用inter.channel.send()发消息即可,完全可以满足需求。
核心实现步骤
- 收到交互后3秒内先调用对应库的延迟响应方法,告知Discord服务器你已经收到交互请求,不需要触发失败提示
- 后续正常执行业务逻辑,调用
inter.channel.send()发送你需要的内容即可
各常用库代码示例
discord.py / pycord / nextcord (Python)
# 先执行延迟回执,加ephemeral=True可以让延迟提示仅触发用户可见,不会产生公开多余消息 await inter.response.defer(ephemeral=True) # 后续正常发送频道消息 await inter.channel.send('你要发送的自定义内容')
discord.js v14+ (JavaScript/TypeScript)
// 先执行延迟回执 await inter.deferReply({ ephemeral: true }); // 后续正常发送频道消息 await inter.channel.send('你要发送的自定义内容');
补充说明
如果你不介意触发交互的用户看到短暂的「Bot正在思考」提示,可以去掉
ephemeral参数,效果完全一致。如果你的业务逻辑处理耗时超过3秒,也可以用这个方法先回执再处理,同样能避免交互失败提示。
内容的提问来源于stack exchange,提问作者Siriusmart
相关产品推荐
相关产品推荐

