'use strict';
const uniPush = uniCloud.getPushManager({appId:"__UNI__DABF927"}) //注意这里需要传入你的应用appId
exports.main = async (event, context) => {
const body = JSON.parse(event.body);
const sendOptions = {
"push_clientid": body.push_clientid, //填写上一步在uni-app客户端获取到的客户端推送标识push_clientid
// "force_notification":true, //填写true,客户端就会对在线消息自动创建“通知栏消息”。
"title":body.title,
"content": body.content,
"badge": body.payload.badge,
"settings": {
//消息有效期设置,单位毫秒,-1表示不设离线。默认是 2 小时,取值范围:-1 ~ 3 * 24 * 3600 * 1000(3天)之间
"ttl":86400000
},
"payload": body.payload,
// "category": {
// //HarmonyOS NEXT系统(纯血鸿蒙、非安卓鸿蒙)的消息分类,要给鸿蒙设备推送时才必传
// "harmony":"MARKETING", "huawei":"EXPRESS", "vivo":"ORDER"
// },
"options":{
"HW": {
// 值为int 类型。1 表示华为测试消息,华为每个应用每日可发送该测试消息500条。此 target_user_type 参数请勿发布至线上。
// "/message/android/target_user_type":body.payload.targetUserType,
"/message/android/category": body.payload.hwCategory,
// "/message/android/notification/badge/add_num": 1,
// "/message/android/notification/badge/add_num": body.payload.badge,
"/message/android/notification/badge/set_num": body.payload.badge>99?99:body.payload.badge,
"/message/android/notification/badge/class": "io.dcloud.PandoraEntry",
//add_num 为离线推送时,设置的华为角标,1表示在当前的角标数上+1
} ,
"HO": {
//值为int 类型。1 表示测试推送,不填默认为0。荣耀每个应用每日可发送该测试消息1000条。此测试参数请勿发布至线上。
// "/android/targetUserType": body.payload.targetUserType,
"/android/notification/importance": body.payload.hoImportance,
"/android/notification/badge/setNum":body.payload.badge>99?99:body.payload.badge,
// "/android/notification/badge/addNum": 1,
//add_num 为离线推送时,设置的荣耀角标,1表示在当前的角标数上+1
"/android/notification/badge/badgeClass": "io.dcloud.PandoraEntry"
} ,
"VV": {
//值为int 类型。0 表示正式推送;1 表示测试推送,不填默认为0。此 pushMode 参数请勿发布至线上。
// "/pushMode": body.payload.targetUserType,
"/category": body.payload.vvCategory,
} ,
"XM": {
//新小米消息分类下,私信公信id都必须要传,否则请求小米厂商接口会被拦截
"/extra.channel_id": body.payload.xmChannelId
},
"OP": {
"/channel_id": body.payload.opChannelId,
"/category": body.payload.opCategory,
"/notify_level": body.payload.opNotifyLevel, //通知栏消息提醒等级取值定义。1:通知栏,2:通知栏+锁屏,16:通知栏+锁屏+横幅+震动+铃声。使用notify_level参数时,category参数必传。
"/private_msg_template_id": body.payload.opMsgTemplateId,
"/private_title_parameters": body.payload.opTitleParameters,
"/private_content_parameters": body.payload.opContentParameters,
}
}
}
if(body.payload.targetUserType) {
sendOptions.options.HW["/message/android/target_user_type"] = body.payload.targetUserType
sendOptions.options.HO["/android/targetUserType"] = body.payload.targetUserType
sendOptions.options.VV["/pushMode"] = body.payload.targetUserType
}
return await uniPush.sendMessage(sendOptions)
};
a***@wsyxmall.com
- 发布:2025-11-10 10:14
- 更新:2025-11-10 10:14
- 阅读:321
产品分类: uniCloud/支付宝小程序云
示例代码:
操作步骤:
使用后端调用云函数,有小概率云函数返回500报错
使用后端调用云函数,有小概率云函数返回500报错
预期结果:
返回正确结果
返回正确结果
实际结果:
大概每天发一千多条,偶尔会有几条数据返回500报错
大概每天发一千多条,偶尔会有几条数据返回500报错
bug描述:
unipush2.0,我们后端调用url云函数时,有小概率云函数返回500,绝大部分是正常的,返回500的数据也没计入云函数的日志中,云函数日志记录的只有400的数据。