Discord 频道 Webhook
频道 Webhook 无需维护 Bot 连接,适合固定频道通知。本文依据 Discord 官方 Webhook API 整理,核验日期为 2026-09-08;未执行真实服务器发送验证。
- 在目标 Discord 服务器中具备管理 Webhook 的权限。
- 已确定接收通知的频道。
- 发送端可以安全保存完整 Webhook URL。
- 打开服务器设置或频道集成设置,创建 Webhook。
- 选择目标频道并设置名称和头像。
- 复制 Webhook URL,其中包含 Webhook ID 和 Token。
- 先发送纯文本
content,再测试 Embed 或附件。
| 字段 | 必需 | 说明 |
|---|---|---|
DISCORD_WEBHOOK_URL | 是 | 包含 Webhook ID 与 Token 的完整地址 |
JavaScript 示例需要 Node.js 20 或更新版本;Python 示例需要安装 requests。
curl -X POST "$DISCORD_WEBHOOK_URL" \ -H 'Content-Type: application/json' \ -d '{"content":"通知渠道连通性测试"}'const response = await fetch(process.env.DISCORD_WEBHOOK_URL, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ content: '通知渠道连通性测试' }),});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);console.log(response.status === 204 ? '发送成功' : await response.text());import osimport requests
response = requests.post( os.environ["DISCORD_WEBHOOK_URL"], json={"content": "通知渠道连通性测试"}, timeout=15,)response.raise_for_status()print("发送成功" if response.status_code == 204 else response.text)需要取得创建后的消息对象时,可按官方接口说明使用 wait=true。
未启用等待时成功请求可能不返回消息体。应确认 HTTP 状态符合官方定义,并在目标频道看到消息。
- Webhook URL 即发送凭据,不要公开或写入浏览器端。
- 仅授予操作人员管理 Webhook 所需权限。
- URL 泄露后删除或重新生成 Webhook,并替换所有调用方。
Unknown Webhook:Webhook 已删除、Token 错误或 URL 被截断。
消息没有正文:普通请求至少提供 content、embeds、components、file 或 poll 中的一种。
频率限制:读取响应头并按 retry_after 退避。