const cloud = require('uni-cloud-core')
exports.main = async (event, context) => {
console.log('event : ', event); // 已有的日志打印
try {
// 1. 解析请求参数(从body中提取JSON)
const body = JSON.parse(event.body || '{}'); // 解析POST的body内容
const { clientid, title, content, payload = {} } = body;
// 2. 权限验证(已通过,这里仅做确认)
const requestToken = event.headers['x-auth-token'];
const validToken = 'huimingxin'; // 与你的Token一致
if (requestToken !== validToken) {
return { code: 403, message: '权限验证失败' };
}
// 3. 参数校验(确保必要参数存在)
if (!clientid || !title || !content) {
return { code: 400, message: '缺少参数(clientid/title/content)' };
}
// 4. 核心:调用uni-cloud-push接口发送通知
const pushResult = await cloud.openapi.push.send({
type: 'unicloud', // 固定值
deviceType: 'all', // 推送所有设备类型(android/ios)
clientid: clientid, // 目标设备的clientid
title: title, // 通知标题
content: content, // 通知内容
payload: payload, // 自定义数据(点击通知后传递给应用)
// Android配置(必须,否则可能无法推送)
android: {
channelId: 'default', // 通知通道ID(需在应用中提前创建)
sound: 'default' // 通知声音
},
// iOS配置
ios: {
sound: 'default' // 通知声音
}
});
// 5. 推送成功:记录日志并返回结果
console.log('推送成功,结果:', pushResult);
return {
code: 200,
message: '推送成功',
data: {
pushId: pushResult.pushId, // 推送唯一ID(可用于查询状态)
clientid: clientid
}
};
} catch (err) {
// 6. 推送失败:捕获错误并返回
console.error('推送失败,错误:', err);
return {
code: 500,
message: '推送失败',
error: err.message
};
}
}总是报Cannot find module 'uni-cloud-core'
0 个回复