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

Discord webhook发送带按钮消息出现JSON语法错误问题求助

问题根因

你代码里的paramsJSON对象缺少闭合的右大括号},属于基础语法错误,这就是导致JSON序列化失败、接口返回错误的核心原因。你发送不带按钮的消息没问题,是因为当时你写的对象结构是完整闭合的,新增components字段后漏补了对象的闭合符号。

修复方案

在components数组的结束括号后补充params对象的闭合右大括号即可,修复后的完整代码如下:

const request = new XMLHttpRequest();
request.open("POST", "/* the url of the bot */");

request.setRequestHeader('Content-type', 'application/json');

const params = {
  "embeds": [
    {
      "title": "test",
      "description": "test",
      "color": 65474
    }
  ],
  "components": [
    {
      "type": 1,
      "components": [
        {
          "type": 2,
          "style": 5,
          "label": "kaas",
          "url": "/* url website */"
        }
      ]
    }
  ]
}

request.send(JSON.stringify(params));

额外校验点

如果修复语法问题后按钮仍不显示,可以检查以下配置:

  • 确保你使用的webhook有权限发送组件消息,默认官方webhook都支持发送链接型按钮
  • 按钮的url字段必须填入合法的完整HTTP/HTTPS链接,不能留空或者填入不符合格式的内容
  • 如果使用非链接型的交互按钮(style不为5),必须补充custom_id字段,否则会被接口拒绝

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 16:36:04