Tasker通过Discord Webhook自动转发通知失败问题咨询
Tasker Discord Webhook 转发通知无内容问题排查方案
核心问题分析
你的情况说明Webhook本身配置正常,问题出在通知变量的获取、解析或JSON格式兼容性上——因为替换为系统参数能正常发送,排除了Webhook链接、Tasker网络权限等基础问题。
具体排查与修复步骤
1. 替换不可靠的%evtprm变量,改用Tasker专属通知变量
%evtprm系列变量的索引会随事件类型变化,容易映射错误。Tasker的「Notification Received」事件提供了更稳定的专属变量:
%napp:发送通知的应用名称%ntitle:通知标题%ntext:通知内容文本%npackage:应用包名
修改后的请求体示例:
{ "content": "%ntext", "username": "%napp", "embeds": [{ "title": "%ntitle", "description": "%ntext" }] }
2. 验证通知变量是否有有效值
在Tasker流程中添加「Flash」动作,触发时显示%napp、%ntitle、%ntext的值:
- 如果某个变量为空,说明该通知本身无对应内容(比如部分通知只有标题没有文本),需添加「If」动作判断变量是否存在后再发送
- 如果变量包含双引号、换行符、特殊Emoji等,会破坏JSON结构,导致Discord拒绝请求
3. 处理通知内容中的特殊字符
若通知文本含特殊字符,先对内容编码:
- 在「HTTP Request」动作前添加「HTML Encode」动作,将
%ntext编码为%encoded_text - 修改请求体,用编码后的变量替代原变量:
{ "content": "%encoded_text", "username": "%napp", "embeds": [{ "title": "%ntitle", "description": "%encoded_text" }] }
4. 确认HTTP请求头配置
在Tasker的「HTTP Request」动作中必须设置:
- 请求方法:
POST - 内容类型:
application/json(在「Advanced」选项中配置) - Webhook URL需完全正确,无多余字符或换行
5. 逐步简化请求定位故障点
先发送最简化的请求测试:
{"content": "%ntext"}
如果能成功发送,再逐步添加username和embeds字段,定位具体是哪个部分导致的问题。
内容的提问来源于stack exchange,提问作者hygtrk
相关产品推荐
相关产品推荐

