html52.com
我爱小程序-开发者交流社区

用触发器定时发送消息,只想发送一次,但为什么会发送多条?

因为是得用户允许才会发出,所以我在用户提交一条日记时用了

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

    

  }

  }

}


网友回复

Mr.Zhao:

执行一次,发送了两次? 搞玄学吗

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

真正的个人免签约支付接口

云免签H5支付