因为是得用户允许才会发出,所以我在用户提交一条日记时用了
wx.requestSubscribeMessage({
tmplIds: ['Rq5eGHbeyzlS8KIdqySLtpXtf8nCftcC3c_CdvR15_s'], // 此处可填写多个模板 ID,但低版本微信不兼容只能授权一个
success(res) {
console.log('已授权接收订阅消息')
},
})
}
下面是云函数,listnum.total只有两条,按照逻辑应该就是给两个微信号各自发送两条信息就好了,
但是如果我的日记提交了多条,触发器定时的那个点,一个用户就会收到多条信息,
如果我用一个按钮去调用云函数,就只会收到一条信息,这是为什么 ?
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init();
const db = cloud.database();
const userda = db.collection('users');
const template_id = 'Rq5eGHbeyzlS8KIdqySLtpYtf8nCftcC3c_CdvR15_s'; // 小程序模板消息模板 id
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
var d = new Date();
var dateshow = d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate();
const getInfo = await userda.get();
const listnum = await userda.count();
for (let i = 0; i < listnum.total; i++) {
var touser = getInfo.data[i].userid;
// 发送模板消息
try {
const result = await cloud.openapi.subscribeMessage.send({
touser: touser,
page: 'pages/write/write',
lang: 'zh_CN',
data: {
phrase1: {
value: '日记提醒'
},
thing2: {
value: '今天你的日记提交了吗?如果没有请提交'
},
time3: {
value: dateshow
},
name4: {
value: '系统提醒'
}
},
templateId: template_id,
miniprogramState: 'developer'
})
} catch (err) {
//return err
}
}
}