安全中心
接口方法https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN
文本内容安全识别接口 1.除了调用频率限制(单个appId调用上限为 4000次/分钟 2000000次/天) 、用户需要两小时内使用过小程序 这两种限制外是否还有别的限制条件(例如是否收费、哪些类目的小程序可以使用、必须依托小程序原生环境吗) 2.四种场景对于 “海洛因” 关键字的检测结果为啥不一致 场景值为1-risky 2-pass 3-pass 4-pass 针对于用户资料(例如地址等)信息 推荐使用哪种场景值
{"errcode":47001,"errmsg":"data format error rid: 675f9249-23fe8788-160d406b"} 。有比较好用的示例代码吗?或者这个rid可以从哪里看到更详细的报错信息么
【你是大佬,点进去看看我的问题吧,你一看就是很会】我在小程序中获取照片并转换Base64(可以通过工具正常转换成选择图片),再提交到云函数,在其中调用: const result = await cloud.openapi.security.imgSecCheck({ media: { contentType: event.fileName?.toLowerCase().endsWith('.png') ? 'image/png' : 'image/jpeg', value: buffer } }); 权限也声明了: { "permissions": { "openapi": [ "security.imgSecCheck", "security.msgSecCheck", "security.mediaCheckAsync" ] } } 但是最终经过重复测试发现无论提交什么图片都返回通过(包括涉黄图,经过测试发现照样返回通过)。 官方文档也没说这个方法被抛弃,说的正常可用。不知道是我的方式错还是咋的。我的云函数是: const cloud = require('wx-server-sdk'); cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }); exports.main = async (event, context) => { try { // Check if the file data is provided if (!event.file) { console.log('No image data received'); return { code: 400, msg: '未接收到图片数据' }; } // Convert base64 file to buffer const buffer = Buffer.from(event.file, 'base64'); console.log('Buffer length:', buffer .length); // Log the buffer length to check if the image data is correctly converted // Check if the image data is empty if (buffer.length === 0) { console.log('Image data is empty'); return { code: 400, msg: '图片数据为空' }; } // Check file size (limit to 2MB) if (buffer.length > 1024 * 1024 * 2) { // 2MB limit console.log('Image size exceeds 2MB:', buffer.length); // Log the size of the image return { code: 400, msg: '图片大小超过限制' }; } // Perform security check try { const result = await cloud.openapi.security.imgSecCheck({ media: { contentType: event.fileName?.toLowerCase().endsWith('.png') ? 'image/png' : 'image/jpeg', value: buffer } }); // Log the security check response for debugging console.log('Security check response:', JSON.stringify(result)); if (result.errCode === 0) { return { code: 200, msg: '检测通过' }; } else { console.log('Security check failed:', result); return { code: 500, msg: '图片检测未通过', data: result }; } } catch (secError) { console.error('Security check error:', secError); // Special handling for different error codes if (secError.errCode === 87014) { console.log('Image content violation detected'); return { code: 500, msg: '图片内容违规' }; } else if (secError.errCode === -604102) { console.log('Image format error detected'); return { code: 500, msg: '图片格式错误' }; } console.log('Unknown security check error:', secError); return { code: 500, msg: '图片检测失败', data: secError }; } } catch (err) { console.error('Fatal error:', err); return { code: 502, msg: '系统错误', error: err.message }; } }; 我希望使用相关的用户给个反馈,因为比较紧急。 再说一遍:小程序内选完图片后转成的base64内容绝对没有问题,可以正常转换成图片。
前一分钟看对存在问题的图片和正常图片都可以正常检测的,什么也没有修改,真的就过了一会儿,就突然不返回result了?过去了十几分钟了,也没有结果返回呢? 如下图: [图片]
请问微信小店 appsecret是否会自动重置或过期
请问能不能图片在没有审核前先显示,等内容安全检测结果来了之后,再在后台处理,让违规的图片不让出现呢?
我的小程序在开发阶段,因为是博客类的,所以对用户发布的图文数据进行安全检测,文本识别是没有问题的,图像的我能正常获得trace_id和result结果,我也正常将他们入库了,可今天我做测试的时候,发现发了两张肯定不合格的图片,结果我发现居然检测结果是pass,请问该怎么办?其中一个traceid: "6750720f-48f618ad-368b45de"
trace_id:67430522-2cf44be2-19de0ea9
await cloud.openapi.security.mediaCheckAsync({ mediaUrl: event.mediaUrl, mediaType: 2, version: 2, openid: wxContext.OPENID, scene: 4 啥也检测不出来,一大推黄色,都pass,什么情况,有知道的吗?
exports.main = async (event, context) => { const wxContext = cloud.getWXContext() const openid = wxContext.OPENID; var trace_id = event.trace_id; console.log("event",event); if (event.result.suggest == 'pass') { const com = cloud.database().command; cloud.database().collection('tupianshs').where({ tupians: com.all([trace_id]) }).get().then(res=>{ console.log(res,"tupianshsres") 。。。。。。。。。 例子 。。。。目前有两个图片审核结果回来了。。。。函数调用了到了,两次,。。 审核完后, 两个都是pass, console.log("event",event); 两个都可以 console.log(res,"tupianshsres") 这里,只有一个可以。。。 怎么搞?
官方的msgSecCheck检测能力太弱,很多明显的违禁词都检测不出来,(比如台湾共和国,支持台独,等等这种,拉的一批)。所以我想自己的服务器提供内容检测接口,不使用官方的接口。这样会被判违规吗?
1.这是图片内容安全监测的云函数[图片] 2.这里设置了消息推送[图片] 3.这个是消息推送对应的云函数 [图片] 现状:图片一直返回pass 求助:请问大佬们 这样写对吗?应该怎么改
通过网址获取不了的?
[图片][图片]
微信小程序审核的时候被拒,说发送图片或者文字存在内容安全风险,需要进行内容安全验证时,请尽快完善内容机制。, 先获取access token,然后再用access token + 验证API来验证内容的好坏。 器接入微信验证API有两种方式来做 第一种是 小程序把内容上传到后台,后台获取access token之后再用验证API。 第二种方式是,小程序先从后台获取access token,然后小程序来用access token 调用验证的API。 第一种方式试过了,是肯定可以的。 但第二种方式用起来得到了 600002的错误,说发送的域名不在审核的域名之下。 是不是第二种方式不能做
[图片][图片] POST https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN
将 input 组件 type 的值设置为 nickname,当用户在此input进行输入时,键盘上方会展示微信昵称。从基础库2.24.4版本起,在onBlur 事件触发时,微信将异步对用户输入的内容进行安全监测,若未通过安全监测,微信将清空用户输入的内容,建议开发者通过 form 中form-type 为submit 的button 组件收集用户输入的内容。 问题是form表单收集到的文本值是安全检测之前的值,有没有方法可以获取到安全监测之后的值,即如果未通过检测则获取到空字符串,如果通过检测则获取到新字符串?
[图片]
微信回调过来的参数:{"signature":"a4954e4550167f4163b4bc3352c5df6348e3e548","timestamp":"1731082309","nonce":"1593149607","openid":"xxxxxxx","encrypt_type":"aes","msg_signature":"3c067374860a35698f9bed742cb5c0f072c9afb5"} 按照顺序加密参数得到的MSG_Sinature: Encrypt+ timestamp + nonce + 消息推送配置成功的令牌TOKEN; ,但是得到的MSG_Sinature和msg_signature 一直不一样, 微信回调过来的实体包:{"ToUserName":"XXXXXXXX","Encrypt":"OxA6gGOMQ0wepxY0CJ2bL5NdQgn++dSh9awyC3CfJHVOhFXuc4DEJYBwSHy8d3BkRrUj5gvFAcfSHCIB7FgFN9zVgG+X0rADL/CtkvOXjW/LIWAZwkc0jTaO+yGQK4uh2oTdU2MgWlUeFi1k8pkM0Yiv3RN2fWC+PKAZe/9mi7ab72SiH9eT8ovHxlLQsk6z7qaxpBQ+0R8K528PO7bq41FRtOFziFJuis9ToGcwWy25EBSrmsrE3x109YmTloQ0VhvdmHZ1sLneVZhQ00GumvX6ItgWty8b1Q1qnHpPs8aaUh/JhqTsCPLC4We4uk+n+2DmrS/Jm1eC9Ocdb1E3QibVL9BmJn8SVosF+xmwWfLlqYlzxpFiD1Zkj7wULiuTah3E0VAQLH6uoSadYeaf4SsWjJ5+a+8R70hd846Z7ZdI0Yu+OZ6MWhw2eLwN0J6k7w0hjQxMDpcQQFCFzKxxf3ZQkY7Ph6suFfuQ=="}
你好,核实此为文字编码错误,传入的content显示为\u4***\u8***,导致接口无法识别,请使用utf-8编码。