- 内容安全检测API的DEMO(imgSecCheck, msgSecCheck)
使用imgSecCheck, msgSecCheck这两个API的时候碰到一些雷,现在就分享下. msgSecCheck传输的文本不可以是Unicode编码,要进行解码后再传输, 否则返回的是 "内容正常,无违规内容" PHP DEMO: private function scantxt($url, $data) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } 调用: $data = ['content' => 'xxxxxxxxxxxxxxxxxxxxxxx']; scantxt($url, json_encode($data, JSON_UNESCAPED_UNICODE)); imgSecCheckmedia参数类型为form-data, 应该是指POST表单的头格式为 Content-Type: multipart/form-data 其实就是服务器端模拟文件上传功能,上传文件给微信服务器, 被上传的文件不支持URL,只能为本地图片,图片路径推荐绝对路径(只要能根据路径找到该文件即可,有的可以相对路径) PHP 5.5以上和以下使用的API方法不同 其实微信可以考虑支持BASE64,这样更简便. 5. API文章最下方的@, 其实可加可不加, 不加的时候微信也鉴别( @意思是上传的为图片) private function upimg($url) { $file = __DIR__ . '/123.jpg'; $cfile = curl_file_create($file, 'image/jpg', '@testpic'); //这里硬编码了,自己修改 $imgdata = array('media' => $cfile); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data')); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true); // stop verifying certificate curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $imgdata); $r = curl_exec($curl); curl_close($curl); return $r; }
2018-07-25 - 云调用实现内容安全【文本、图片】
应用场景: 解决小程序输入内容违规,导致小程序被封风险,或者微信官方检查到小程序未使用安全审核机制,则警告要求使用,否则封禁搜索功能。 核心代码: 云函数端: const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event) => { try { let result = ''; if(event.content){ result = await cloud.openapi.security.msgSecCheck({ content: event.content }); }else if(event.base64){ result = await cloud.openapi.security.imgSecCheck({ media: { contentType: 'image/jpeg', value: Buffer.from(event.base64, 'base64') } }) } return { result } } catch (error) { return { error } } } 小程序端: //文本安全检测 wx.cloud.callFunction({ name: "secCheck", data: { content: "花里胡哨", } }).then((res) => { console.log('msgSecCheck =', res) }) //图片安全检测 wx.chooseImage({ count: "1", complete: (res) => { wx.getFileSystemManager().readFile({ filePath: res.tempFilePaths[0], encoding: "base64", success: (res) => { wx.cloud.callFunction({ name: "secCheck", data: { base64: res.data, } }).then((res) => { console.log('imgSecCheck =', res) }) } }); }, }) 说明提示: 由于代码片段不支持云开发,故无法放代码片段,使用过程中有什么问题,欢迎讨论。
2020-05-07 - 求助,有没有PHP调用图片安全接口imgSecCheck的demo?
求一个PHP调用图片安全接口imgSecCheck的demo
2020-11-04 - 这个对接成功了吧,数据也发送过去了,怎么一直errMsgOK啊?
[图片] 特3456书yuuo莞6543李zxcz蒜7782法fgnv级 我发送的这个内容 appid是wx83505b27340adf62 能帮我看下不!
2020-08-21 - msgSecCheck 接口一直返回ok的解决方案,测试可行的msgSecCheck 接口PHP版demo
今天突然说小程序版本审核要我们处理评论中的敏感词内容,踩了一些坑终于搞好了,贴下代码出来吧,文档说的不是很详细,估计有不少小伙伴踩坑了。 public function keyCheck(){ $wxToken=wxTokenCheck(); //获取微信token $key = input(‘key’); $url = ‘https://api.weixin.qq.com/wxa/msg_sec_check?access_token=’.$wxToken['token’]; $data = json_encode([‘content’=>$key],JSON_UNESCAPED_UNICODE); //一定要把中文转成utf8!!! $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_URL,$url); // url curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // json数据 $res = curl_exec($ch); // 返回值 curl_close($ch); $result = json_decode($res,true); [代码] echo "<pre>"; var_dump($result); var_dump($data); echo "</pre>"; }[代码]
2019-09-29 - 敏感图片检测接口
调用敏感图片检测接口 https://api.weixin.qq.com/wxa/img_sec_check?access_token= 总是返回 {"errcode":41005,"errmsg":"media data missing hint: [yccPpa00088***]"} 参数:@C:\phpStudy\WWW\test\upload_cut_tempimg\15246560060977.jpg
2018-04-25 - 官方大佬们,安全风控接口一直不稳定啊,这是我注册的接口传递的值是 0
传入的openID须在120min内有效访问小程序,否则会视为超时ID, 前几天提这个问题然后稳定了一周,昨天频繁大量的又出现了, 目前我注册请求的是0,0都报这么多,呢1岂不是更多了,都不敢用 1, 能不能稳定点呀, [2021-01-15 19:05:51] local.ERROR: 出错原因:61010_code is expired rid: 6001770f-3b3d6bab-3e0992c2 [2021-01-15 19:06:14] local.ERROR: 出错原因:61010_code is expired rid: 60017726-69d3f542-31f11cd3 [2021-01-15 19:06:19] local.ERROR: 出错原因:61010_code is expired rid: 6001772b-6b6f4974-22d0abd5 [2021-01-15 19:06:27] local.ERROR: 出错原因:61010_code is expired rid: 60017733-7aad04c4-27084d69 [2021-01-15 19:06:32] local.ERROR: 出错原因:61010_code is expired rid: 60017738-264d21c8-543bcee5 [2021-01-15 19:06:40] local.ERROR: 出错原因:61010_code is expired rid: 60017740-5cfbb2ab-7fbb51bc [2021-01-15 19:06:41] local.ERROR: 出错原因:61010_code is expired rid: 60017741-7af29974-2a0ae14f [2021-01-15 19:06:48] local.ERROR: 出错原因:61010_code is expired rid: 60017748-5fc356e7-3b93145f [2021-01-15 19:06:48] local.ERROR: 出错原因:61010_code is expired rid: 60017748-63a86fcc-5bc826e3 [2021-01-15 19:06:51] local.ERROR: 出错原因:61010_code is expired rid: 6001774b-1525e73a-464b1902 [2021-01-15 19:06:59] local.ERROR: 出错原因:61010_code is expired rid: 60017753-064f85ad-5fd414f7 [2021-01-15 19:07:00] local.ERROR: 出错原因:61010_code is expired rid: 60017754-009aa7f3-4fbd5588 [2021-01-15 19:07:03] local.ERROR: 出错原因:61010_code is expired rid: 60017757-3d5a4804-29b7e21a [2021-01-15 19:07:04] local.ERROR: 出错原因:61010_code is expired rid: 60017758-41d71d00-18a9fc11 [2021-01-15 19:07:05] local.ERROR: 出错原因:61010_code is expired rid: 60017759-6253f5dc-4ec52296 [2021-01-15 19:07:07] local.ERROR: 出错原因:61010_code is expired rid: 6001775b-3f6b1d2f-125b5da6 [2021-01-15 19:07:09] local.ERROR: 出错原因:61010_code is expired rid: 6001775d-2fdb9549-43698660 [2021-01-15 19:07:13] local.ERROR: 出错原因:61010_code is expired rid: 60017761-2ef25db9-6d79b9ea [2021-01-15 19:07:13] local.ERROR: 出错原因:61010_code is expired rid: 60017761-6bfdb497-6de64abd
01-16