playbook/docs/tsl/modules/wechat_message.md

88 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 发送微信消息使用说明
文档类型:模块摘要
是否可直接用于生成代码:仅部分
是否含已验证可执行示例:否
是否含已验证反例:否
遇到不确定时跳转到:调用侧账户体系文档、项目实际接口说明、[index.md](index.md)
本页用于确认接口名称、参数含义和风险边界,不替代项目级接入文档。
## 适用场景
- 通过“天软科技服务号”向微信客户端发送模板消息。
- 支持同步/异步发送,异步可用消息 ID 查询状态。
## 前置条件
- 用户关注并绑定天软科技服务号,获得 `userid`
- 给他人发送消息需对方授权其 `userid`
## 核心接口
- `send_wechat_message(userid, url, title, first, remark[, k1..k6])`
- 同步发送;成功返回 `success`,否则返回错误信息。
- `send_wechat_message_async(userid, url, title, first, remark[, k1..k6])`
- 异步发送;返回 16 位消息 ID时间戳 + 随机数)。
- `get_wechat_message_status(userid, username, wechat_message_id)`
- 查询异步发送结果;返回 “成功” 或错误信息。
## 参数说明(模板消息)
- `userid`:绑定账户后获取的用户标识(必需)。
- `username`:查询异步发送状态时使用的用户名 / 账户标识;当前页只确认查询接口需要它,具体来源以项目实际账户体系或调用侧约定为准。如果调用侧拿不到该值,当前页不支持生成状态查询代码。
- `url`:详情地址(必需,可为空字符串)。
- `title`:模板消息标题(必需)。
- `first`:副标题(一般需要)。
- `remark`:备注(一般需要)。
- `k1..k6`:模板关键字参数(根据模板类型变化)。常见模板示例:
- 监控报告通知:运行状态/时间
- 系统运行简报:系统名称/简报内容/发布时间
- 告警通知:告警内容/发生时间
## 同步 vs 异步
- 同步:阻塞等待结果,适合紧急通知。
- 异步:立即返回,适合非紧急通知;用 `get_wechat_message_status` 查询。
- 如果你无法确认 `username` 的来源,不要自行猜测;先回调用侧或账户体系文档确认。
## 当前只确认的范围
- 当前页已经确认的范围是:发送接口名、异步发送会返回消息 ID、状态查询接口需要 `userid` + `username` + `wechat_message_id`
- 当前页没有确认的范围是:`username` 的正式来源、不同模板关键字的完整映射、项目侧的统一封装方式。
## 不要猜的部分
- 不要把 `"username"` 当成可用实参,也不要凭空拼接账户名。
- 如果调用侧没有提供 `username`,当前页只支持生成发送代码,不支持生成状态查询代码。
- `k1..k6` 的含义随模板类型变化;需要和具体模板一起核对。
## 发送示例(配置片段,可参考参数组织)
代码块身份:配置片段 / 概念骨架
代码块说明:可参考参数组织,不是已验证可执行示例。
```tsl
// 定义参数
url := "http://tinysoft.com.cn";
user_id := "190F1826267E0EB45658FB81836636A7";
title := "监控报告通知";
first := "运行状态";
keyword_1 := "运行正常";
keyword_2 := "";
DateTimeToString(keyword_2, "YYYY-MM-DD HH:NN:SS", Now());
remark := "如有疑问请与技术人员联系!";
// 同步发送
echo send_wechat_message(user_id, url, title, first, remark, keyword_1, keyword_2);
// 异步发送
wechat_message_id := send_wechat_message_async(user_id, url, title, first, remark, keyword_1, keyword_2);
```
## 状态查询示例
- 当前页不提供状态查询代码块。
- 只有在调用侧已经明确提供 `username` 来源时,才继续生成 `get_wechat_message_status(...)` 调用。