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

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 客户端 123123123 2.6.6

- 当前 Bug 的表现(可附上截图)- 当前 Bug 的表现(可附上截图)- 预期表现

- 当前 Bug 的表现(可附上截图)- 预期表现

- 预期表现

能正常发布模版消息


- 描述

如果采用官方案例方式每个数据传入一个对象,提示第一个参数要是个可遍历对象,


传入数组则报图2


- 复现路径

本地调试调用


- 提供一个最简复现 Demo

/**

* @typedef { object } SendOptions

* @property { string } templateId 推送的模版id 【 必须 】

* @property { string[] } push_origin 要推送的收集来源 【 必须 】

* @property { Object } sendData 模板内容,不填则下发空模板。具体格式请参考示例。

* @property { string } emphasisKeyword 模板需要放大的关键词,不填则默认无放大

* @property { page } templateId 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。

*/

const cloud = require("wx-server-sdk");

cloud.init();

const db = cloud.database();

const _ = db.command;

/**

* 推送信息

* @param { SendOptions } options

*/

exports.main = async options => {

try {

const {

templateId,

page,

push_origin: PUSH_ORIGIN,

sendData,

emphasisKeyword

} = options;

if(!templateId || !PUSH_ORIGIN || !PUSH_ORIGIN.length ){

console.error('error data',options);

return;

}


const ONE_DAY_LENGTH = 24 * 60 * 60 * 1000;

const formIdListCollection = db.collection("formId_list");


const SEVEN_DAYS_AGO = Date.now() - 7 * ONE_DAY_LENGTH;


const sendOpenIdDoc = formIdListCollection

.where({

origin: _.in(PUSH_ORIGIN),

time: _.gt(SEVEN_DAYS_AGO)

});

const dataList = await sendOpenIdDoc.get();

// console.log('[ dataList ]',dataList.data);

// const tasks = Promise.all(

//     dataList.data.map(data => {


//         console.log({

//             touser: data.openId,

//             templateId,

//             page,

//             formId: data.formId,

//             data: sendData,

//             emphasisKeyword

//         });

//         return cloud.openapi.templateMessage

//             .send({

//                 touser: data.openId,

//                 templateId,

//                 page,

//                 formId: data.formId,

//                 data: sendData,

//                 emphasisKeyword

//             })

//             .catch(e => {

//                 console.log(`[ ${data.openId} ]`, e);

//             });

//     })

// );


const sendArr = dataList.data.map(data=>({

touser: data.openId,

templateId,

page,

formId: data.formId,

data: sendData,

emphasisKeyword

}));


await cloud.openapi.templateMessage.send(sendArr);


// await Promise.all(tasks);

// 删除数据中已经使用过的内容

// await sendOpenIdDoc.remove();

await formIdListCollection.where({

time:_.lt(SEVEN_DAYS_AGO)

}).remove();

return {

code: 0,

msg: "success"

};

} catch (error) {

console.error(error);

}

};



评论 抢沙发

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

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

云免签H5支付