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

在Node.js中通过HTTP与Axios实现Discord Bot延迟回复后的消息更新

在Node.js中通过HTTP与Axios实现Discord Bot延迟回复后的消息更新

我明白你现在的需求——已经用延迟响应让Discord知道Bot正在处理,现在想通过HTTP+Axios来更新这条消息,而不是用网关对吧?其实很简单,Discord专门提供了对应的API端点来做这件事,我给你一步步说明:

核心原理

当你发送DEFFERED_CHANNEL_MESSAGE_WITH_SOURCE类型的响应后,Discord会生成一个关联的交互令牌(interaction.token),你可以用这个令牌加上你的Bot应用ID,调用Discord的Webhook API来编辑那条“正在处理”的延迟消息。

修改你的代码实现

你只需要在完成业务逻辑后,向特定的API端点发送PUT请求即可。这里直接修改你现有的代码:

app.post('/interactions', verifyKeyMiddleware(PUBLIC_KEY), async (req, res) => {
  const interaction = req.body;

  if (interaction.type === InteractionType.APPLICATION_COMMAND) {
    if(interaction.data.name === 'chat'){
      // 第一步:发送延迟响应,告诉Discord我们正在处理
      res.send({
        type: InteractionResponseType.DEFFERED_CHANNEL_MESSAGE_WITH_SOURCE,
      });

      // 第二步:执行你的业务处理逻辑(比如调用API、计算等耗时操作)
      // 这里用setTimeout模拟耗时任务,替换成你实际的代码
      await new Promise(resolve => setTimeout(resolve, 2000));
      const finalMessageContent = "处理完成啦!这是更新后的消息内容";

      // 第三步:用Axios调用Discord API更新延迟消息
      try {
        await discord_api.put(
          `/webhooks/${APPLICATION_ID}/${interaction.token}/messages/@original`,
          { 
            content: finalMessageContent,
            // 你还可以添加embeds、components等其他消息内容,比如:
            // embeds: [{ title: "结果", description: "这是处理后的嵌入消息" }]
          }
        );
        console.log("延迟消息更新成功");
      } catch (error) {
        console.error("更新消息失败:", error.response?.data || error.message);
      }

      return;
    }
  }
});

关键注意事项

  • API端点说明:/webhooks/{APPLICATION_ID}/{token}/messages/@original是Discord专门为编辑延迟响应消息提供的端点,@original表示我们要编辑最初的那条延迟消息。
  • 请求方法:必须使用PUT请求,因为我们是在编辑已存在的消息内容。
  • 权限与头信息:你已经通过discord_api实例配置了正确的Bot授权头,所以不需要额外添加认证信息。
  • 支持的消息内容:除了纯文本content,你还可以发送嵌入消息、按钮组件等,和普通Discord消息的格式完全一致。
  • 错误处理:一定要捕获请求异常,Discord可能会返回错误码(比如401表示令牌无效,404表示消息已被删除),通过error.response?.data可以查看详细的错误信息。

这样你就能完全基于HTTP和Axios实现延迟回复后的消息更新,不需要依赖网关啦。

备注:内容来源于stack exchange,提问作者Sumant Sukla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 09:33:10