const cloud = require('wx-server-sdk');
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
});
exports.main = async (event, context) => {
const { image_urls, openid } = event; // `image_urls` 是一个包含多个图片链接的数组
if (!image_urls || !Array.isArray(image_urls) || image_urls.some(image_url => !image_url.trim())) {
return { success: false, message: "提交的内容不能为空" };
}
try {
let overallResults = []; // 存储所有结果的数组
for (const imageUrl of image_urls) {
// 直接使用传入的图片链接调用 mediaCheckAsync API
const result = await cloud.openapi.security.mediaCheckAsync({
openid: openid,
scene: 2, // 场景值,例如 1 代表用户上传的内容
media_type: 2, // 媒体类型,例如 2 代表图片
version: 2, // API版本
media_url: imageUrl, // 直接使用的图片 URL
});
console.log('API结果:', result.detail);
// 存储结果用于返回
if (result && result.errCode === 0) {
overallResults.push({
imageUrl: imageUrl,
result: result.result,
detail: result.detail || "没有提供详细信息"
});
// 检查建议是否为“pass”
if (result.result && result.result.suggest !== "pass") {
return {
success: false,
message: "检测到不安全内容,无法提交",
results: overallResults
};
}
} else {
overallResults.push({
imageUrl: imageUrl,
error: "API调用失败或返回错误",
errCode: result.errCode,
errMsg: result.errMsg
});
}
}
return {
success: true,
message: "所有内容都是安全的",
results: overallResults
};
} catch (err) {
return {
success: false,
message: `安全检查出错: ${err.message || err.toString()}`,
errorDetail: err
};
}
};
为什么我提交的黄色图片链接(https)都是pass,而且也不返回detail 的详细检测信息
这个是异步接口,需要新建一个云函数来接受推送的结果
该接口为异步返回检测结果,可参考文档:https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/sec-center/sec-check/mediaCheckAsync.html