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

Discord Webhook发送含Components消息:组件不显示问题求助

Discord Webhook发送消息成功但组件不显示的解决方案

问题详情

向Discord Webhook发送带Components组件的消息时,消息能正常发送,但组件无法显示。已参考Discord官方文档编写语法。

Discord实际输出:
Discord消息输出

使用的PHP代码:

<?php

$url = "https://discord.com/api/webhooks/1234567890";

$content = '{
            "content": "This is a message with components.",
            "components": [
                {
                    "type": 1,
                    "components": [
                        {
                            "type": 2,
                            "label": "Click me!",
                            "style": 1,
                            "custom_id": "click_one"
                        }
                    ]
                }
            ]
    }';

$curl = curl_init();
$headers = array('Content-Type: application/json');
curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_POSTFIELDS =>  $content,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_HEADER   => true
));

$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
var_dump($response);

HTTP响应结果:
HTTP响应截图

原因与解决方法

普通的Discord频道Webhook不支持消息组件(Components),只有关联机器人的Webhook(通过机器人OAuth2流程创建或关联的Webhook)才具备组件支持能力。

解决步骤:

  1. 检查Webhook类型:进入服务器设置→集成→Webhooks,确认你的Webhook是关联到机器人的,而非普通频道Webhook。如果是普通Webhook,需要通过机器人API重新创建关联的Webhook。
  2. 验证机器人权限:确保关联的机器人已被授予applications.commands权限,并且在目标频道拥有发送消息的权限。
  3. 确认JSON结构:你的组件语法是符合Discord规范的,无需调整,只要Webhook类型正确即可显示组件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 06:40:19