微信小程序订阅消息推送

  |  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
'use strict';
const request = require('superagent');
const moment = require('moment');

// 文档 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/uniform-message/uniformMessage.send.html
// 由于小程序订阅消息只支持一次性订阅(一个特殊服务才支持永久订阅)只能使用服务号来进行消息推送
(async () => {
let openid = ''; // 用户openid 登录获取
let appid = ''; // 小程序的appid
let appsecret = ''; // 小程序secret
let template_id = ''; // 模板id

let data = {
'first': {
'value': '你有一条新订单',
},
'keyword1': {
'value': '科目1',
},
'keyword2': {
'value': moment().format('YYYY-MM-DD HH:mm:ss'),
},
'remark': {
'value': '请尽快处理!',
},
};

// 获取需要推送的小程序的access_token
let accessTokenInfo = await request.get(`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${appsecret}`).set('accept', 'json');
let { access_token = '', errcode, errmsg } = accessTokenInfo.body || {};
if (errcode) throw errmsg;
let url = `https://api.weixin.qq.com/cgi-bin/message/wxopen/template/uniform_send?access_token=${access_token}`;
let body = {
'touser': openid,
'access_token': access_token,
'mp_template_msg': {
'appid': '', // 公众号模板的appid
'template_id': template_id, // 与data对应
'miniprogram': {
'appid': appid, // 小程序的appid
// 'pagepath': 'index?foo=bar', // 进入小程序路径 不填默认主页
},
'data': data, // 与template_id对应
},
};
let result = await request.post(url).send(body).set('accept', 'json');

console.log(result);
})();

在这里插入图片描述

参数格式:

1
2
3
4
{{first.DATA}}
内容:{{keyword1.DATA}}
时间:{{keyword2.DATA}}
{{remark.DATA}}
文章目录