1249 字
约 4 分钟
0
微信公众号模板消息:怎么准备、模板怎么配

微信公众号模板消息:怎么准备、模板怎么配

流程就两步:

先拿 access_token
  → 再发模板消息(带上日志链接)

正式公众号和企业号流程类似,学习阶段用测试号就够。


1. 准备测试号

打开微信公众平台测试号:

https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

用微信扫码登录。页面上会给你:

页面上的名字 代码 / Secret 里用的名字 干什么
appID WEIXIN_APPID 测试号身份证
appsecret WEIXIN_SECRET 换 token 的钥匙

这两项不要写进仓库,放到 GitHub Secrets。

1.1 拿到你的 OpenID

同一页往下找「测试号二维码 / 关注测试号」。
你自己用微信扫一下,列表里会出现你的用户,里面有一串 openid

这就是消息发给谁:

  • Secret 名:WEIXIN_TOUSER
  • 代码字段:touser

不扫码、没有 OpenID,接口调用成功也收不到消息。


2. 新建消息模板

还在测试号页面,找到 模板消息接口 → 新增测试模板

2.1 占位符规则(必须按这个写)

微信模板里的变量格式是:

{{字段名.DATA}}
  • {{ 开头
  • .DATA}} 结尾
  • 中间的字段名要和代码里 data 的 key 完全一致

写错一个字母,手机上这块就是空的。

2.2 本项目用的模板(直接抄)

代码里四个字段见 TemplateMessageDTO.TemplateKey

  • repo_name 项目
  • branch_name 分支
  • commit_author 作者
  • commit_message 提交说明

测试模板标题可以叫:代码评审通知

模板内容建议如下:

项目:{{repo_name.DATA}}
分支:{{branch_name.DATA}}
作者:{{commit_author.DATA}}
说明:{{commit_message.DATA}}

点击详情查看评审记录。

提交后,微信会生成 模板 ID

  • Secret 名:WEIXIN_TEMPLATE_ID
  • 代码字段:template_id

点开手机消息时跳转的地址,不是写在模板正文里,而是发消息时传的 url
本项目会把「日志仓那篇 md 的 GitHub 链接」填进去。

2.3 发到微信上长什么样

接口 JSON 大致是:

{
  "touser": "你的OpenID",
  "template_id": "你的模板ID",
  "url": "https://github.com/xxx/log/blob/master/2026-08-14/xxx.md",
  "data": {
    "repo_name": { "value": "openai-code-review" },
    "branch_name": { "value": "master" },
    "commit_author": { "value": "zhangsan" },
    "commit_message": { "value": "fix: 修改登录" }
  }
}

data 里每个字段都是 {"value": "具体文字"},不要只传字符串。


3. 要调的两个接口

3.1 获取 access_token

文档:https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Get_access_token.html

GET https://api.weixin.qq.com/cgi-bin/token
    ?grant_type=client_credential
    &appid=APPID
    &secret=APPSECRET

成功会返回:

{
  "access_token": "TOKEN",
  "expires_in": 7200
}

注意:

  • token 大约 2 小时过期
  • 重新获取会使旧 token 失效
  • 学习项目每次发消息现取一次就行
  • 正式环境应做中控缓存,不要每个请求都刷一次

本项目对应:WXAccessTokenUtils.getAccessToken(appid, secret)

3.2 发送模板消息

POST https://api.weixin.qq.com/cgi-bin/message/template/send
     ?access_token=ACCESS_TOKEN
Content-Type: application/json

请求体就是上面第 2.3 节那个 JSON。

本项目对应:WeiXin.sendTemplateMessage(logUrl, data)


4. 和代码评审怎么接上

git push
  → Action 跑 JAR
  → 取出 diff,模型评审
  → 评审 md 推到日志仓,得到 logUrl
  → 拿微信 token
  → 发模板消息(项目/分支/作者/说明 + 点击跳转 logUrl)
  → 手机收到通知

模板本身不放评审长文,只放摘要和链接。详情点进 GitHub。


5. GitHub Secrets 清单

Secret 从哪抄
WEIXIN_APPID 测试号页面 appID
WEIXIN_SECRET 测试号页面 appsecret
WEIXIN_TOUSER 扫码关注后列表里的 OpenID
WEIXIN_TEMPLATE_ID 新建模板后生成的模板 ID

不要把这四项写进 Java 源码或测试类。仓库里若还有示例硬编码,上线前删掉,只读环境变量。


6. 自己先测通再接评审

建议顺序:

  1. 测号、扫码、建模板,四项都拿到
  2. 只调「取 token + 发一条假消息」,手机能收到
  3. 再让 Action 在评审成功后调用同一套发送逻辑

手机收不到时先查:

  • 有没有关注测试号
  • touser 是不是你的 OpenID
  • 模板字段名是否和代码 key 一致(repo_name{{repo_name.DATA}}
  • token 接口有没有报 invalid appid / invalid credential

7. 以后模板会变怎么办

模板 ID 在测试号、正式号、不同业务里经常换。

课里的建议:代码里写死的是业务场景(例如「代码评审完成」),模板 ID 放配置或表里。
本项目现阶段用一个 Secret WEIXIN_TEMPLATE_ID 就够。


8. 最短记忆

测试号拿 appid / secret
  → 扫码拿 OpenID
  → 建模板:{{repo_name.DATA}} 等四个字段
  → 记下模板 ID
  → 发消息前先 GET token
  → 再 POST 模板(data + 跳转 url)

模板决定手机上显示什么;url 决定点进去看哪篇评审。

微信公众号模板消息:怎么准备、模板怎么配
http://www.clxhxhhr.top/posts/460/
作者
clxstart
发布于
2026-09-04
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。