一、配置环境ID
// app.js
App({
onLaunch: function () {
if (!wx.cloud) {
console.error('请使用 2.2.3 或以上的基础库以使用云能力');
} else {
wx.cloud.init({
// env 参数说明:
// env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源
// 此处请填入环境 ID, 环境 ID 可打开云控制台查看
// 如不填则使用默认环境(第一个创建的环境)
env: '环境ID',
traceUser: true,
});
}
this.globalData = {};
}
});
复制代码
二、设置订阅消息模板
小程序后台管理---功能---订阅消息---公共模板库---选用
注意
- 必须有小程序类目 首页---小程序类目
- 点击详情可进行自定义编辑 模板ID则为我们云函数的推送模板ID
- 详情页如下:
三、消息推送授权
注意
- 用户发生点击行为或者发起支付回调后,才可以调起订阅消息界面
wx.requestSubscribeMessage({
tmplIds: ['模板ID'],
success: res => {
console.log(res);
},
fail: err => {
console.error(err)
}
})
复制代码
- 返回值包括'accept'、'reject'、'ban'、'filter'。'accept'表示用户同意订阅该条id对应的模板消息,'reject'表示用户拒绝订阅该条id对应的模板消息,'ban'表示已被后台封禁,'filter'表示该模板因为模板标题同名被后台过滤。
返回值效果图:
四、创建云函数
- 创建云函数---上传并部署---开启本地调试
- config.json配置
{
"permissions": {
"openapi": [
"subscribeMessage.send"
]
}
}
复制代码
- index.js
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
}) // 使用当前云环境
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext().OPENID
try {
//可通过event接收调用云函数传递的值
//touser属性值为openID 可通过cloud.getWXContext().OPENID获取
//data中各类型限制可参照各下方网址
const result = await cloud.openapi.subscribeMessage.send({
"touser": wxContext,
"page": 'index',
"lang": 'zh_CN',
"data": {
"thing1": {
"value": event.a.b
},
"thing2": {
"value": 'A4408'
},
"time4": {
"value": '2019-11-27 12:14:34'
},
"thing5": {
"value": '多辣少盐'
},
"phrase7": {
"value": '一区'
}
},
"templateId": '模块ID',
"miniprogramState": 'developer'
})
return result
} catch (err) {
return err
}
}
复制代码
此网址为参数限制详情:发送订阅消息 | 微信开放文档 (qq.com)
五、调用云函数
- 调用云函数 --- 清除内存 --- 编译项目
wx.cloud.callFunction({
name: 'sendmessage',
data:{
a:{
b:2,
c:22
}
},
success: res => {
console.log(res);
},
fail: err => {
console.error(err)
}
})