收藏
回答

想用触发器触发给用户发送信息,但是为什么用户允许后只能发一次?再发就报错errCode":43101

在云函数中代码如下,先用call云函数测试,只能允许一次,发一次,如果我用定时器去几秒触发试一下,就会出来

返回结果

{"errCode":43101,"errMsg":"openapi.subscribeMessage.send:fail user refuse to accept the msg rid: 5fe56833-3d4f6598-7216aac2"}

日志

如果要实现定时给用户发信息提醒应该怎么做?



// 云函数入口文件

const cloud = require('wx-server-sdk')


cloud.init();

const db = cloud.database();


const userda = db.collection('users');


const template_id = 'Rq5eGHbeyzlS8KIdqySLtpXtf8nCftcC3c_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();




const touser ='olgKb5WfCvN1Afxxmf3I-ydpgLOw';

for (let i = 0; i < 2; i++) {



// let touser = getInfo[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'

})

return result

} catch (err) {

return err

}

}

}


回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-12-25

    订阅一次,发送一次,允许不代表能一直发

    2020-12-25
    有用
    回复 6
    • candywlx
      candywlx
      2020-12-25
      那要实现定时给用户发送提醒应该怎么做???小程序跟公众号不一样吗,象公众号自己就会定时收到一些提醒而不用我一次次去允许
      2020-12-25
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-12-25回复candywlx
      不一样
      2020-12-25
      回复
    • candywlx
      candywlx
      2020-12-25回复Mr.Zhao
      那小程序要实现定时发送信息怎么办?
      2020-12-25
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-12-25回复candywlx
      关联服务号,发送模板消息。短信,电子邮件、申请长期订阅模板
      2020-12-25
      回复
    • candywlx
      candywlx
      2020-12-25回复Mr.Zhao
      哥,能发个链接有详细说明的不
      2020-12-25
      回复
    查看更多(1)
登录 后发表内容
问题标签