用云函数给微信小程序发订阅消息
一句话定义:小程序前端通过
wx.requestSubscribeMessage取得用户授权后把订阅记录落库,服务端用cloud.openapi.subscribeMessage.send在合适的时机给单个用户发模板消息,完成「订单发货」「评论回复」这类业务通知。预计耗时:40 分钟 | 难度:进阶
适用场景
- 适用:微信小程序 + 独立 Cloudbase 环境,需要给已登录用户发模板消息
- 适用:已经在公众平台申请到至少一个订阅消息模板,拿到
templateId - 不适用:服务通知(那是公众号的能力,API 不同)
- 不适用:用
wx.cloud的微信·云开发体系(其官方文档另一套)
环境要求
| 依赖 | 版本 |
|---|---|
| Node.js(云函数运行时) | ≥ 16.13 |
wx-server-sdk | latest(用于云调用 OpenAPI) |
@cloudbase/node-sdk | 3.18.1 |
@cloudbase/cli | latest |
另外需要:
- 已完成 add-auth-wechat-miniprogram,小程序里有可用的登录态
- 已完成 add-database-wechat-miniprogram,知道怎么读写云数据库
- 在 微信公众平台 → 功能 → 订阅消息 申请到至少一个模板,记下
templateId和模板里的字段名(比如thing1time2amount3) - 在 Cloudbase 控制台 → 环境设置 → 微信公众平台关联,把当前小程序 AppID 和当前 env 关联起来。这一步是「云调用」能跑通的前提
「云调用」指的是云函数直接调微信开放 API,不需要业务代码自己换 access_token。Cloudbase 在请求微信侧时会用关联好的小程序身份,所以这一步必须先做。