如何在VBS中发送Discord webhook?现有代码报错50006如何解决?
错误原因
- 提交的内容不符合Discord Webhook的格式要求:Discord要求消息必须携带
content字段存储要发送的文本内容,你直接发送纯文本test,服务端识别不到有效消息字段就会返回50006空消息错误 - 请求头的
Content-Type和提交的内容格式不匹配
修复方案
方案1:使用JSON格式提交(推荐)
修改请求头的Content-Type为application/json,构造符合要求的JSON payload即可,完整代码如下:
Set oHTTP = CreateObject("Microsoft.XMLHTTP") ' 替换为你自己的Discord Webhook地址 webhookUrl = "你的Webhook地址" ' content字段值替换为你要发送的实际内容 payload = "{""content"":""test""}" oHTTP.Open "POST", webhookUrl, False oHTTP.SetRequestHeader "Content-Type", "application/json" oHTTP.SetRequestHeader "Content-Length", Len(payload) oHTTP.Send payload ' 输出请求状态,发送成功会返回204状态码 MsgBox "发送结果状态码:" & oHTTP.Status
方案2:保留原有表单编码格式
如果不想修改Content-Type配置,只需把发送的内容调整为content=test,对应修改Send方法的参数和Content-Length的计算值即可。
注意事项
- VBS语法中字符串内的双引号需要用两个双引号转义,如果你要发送的内容包含双引号,需要提前做转义处理
- 单条消息的
content字段内容不能超过2000字符,超出限制会触发发送失败 - 如果需要发送嵌入卡片消息,只需在JSON payload中添加符合规范的
embeds字段即可
内容的提问来源于stack exchange,提问作者Kep13r
相关产品推荐
相关产品推荐

