感谢官方解答:
刚刚重新测试v1和v2版本图片-异步检测都没问题了.
我一开始用的是webp格式的图片,官方文档是不支持..实际多测试几个图片.webp格式其实也是支持的.建议还是跟官方文档来.
因为v1版本官方已经停止支持了,还是建议用v2版本的.1.0版本在2021年9月1日停止更新.
下面是v2版本的文档:
https:
还有一点要注意,因为即使传一个错误的/或者不存在的文件URL地址,例如https:
这个是v2版本-异步图片检测
{
"errcode": 0,
"errmsg": "ok",
"trace_id": "67690e1d-2304dd16-06f8638c"
}
这个是v2版本异步服务器推送的内容-异常的内容
{
"ToUserName": "gh_dfca41sdfsdfsf78a",
"Encrypt": "zwI15aKaqAnXZKt\/8dY2sRR6l+CwkQ==...",
"FromUserName": "o8Y875O5J_7RmilDY",
"CreateTime": "1734938152",
"MsgType": "event",
"Event": "wxa_media_check",
"appid": "wx7d12e7890e0",
"trace_id": "67690e1d-2304dd16-06f8638c",
"version": "2",
"detail": {
"strategy": "content_model",
"errcode": "0",
"suggest": "risky",
"label": "20002",
"prob": "90"
},
"errcode": "0",
"errmsg": "ok",
"result": {
"suggest": "risky",
"label": "20002"
}
}
这个是v2版本异步图片的PHP代码,使用的是w7corp/easywechat的最新v6.16.0的版本.结果没问题.
$media = $api->postJson('/wxa/media_check_async',[
'media_url'=>$image_path,
'media_type'=>2,
'version'=>2,
'scene'=>2,
'openid'=>$openid,
]);
$res = $media->toArray();
return json($res);
-----------------------------------------------------------------------------------------
下面内容是老版本的,可以不用看了O(∩_∩)O哈哈~
下面是1.0版本的官方文档内容:我使用的同步/异步两种方式,测试都没问题.2024-12-23
https:
结论:
v1版本的同步和异步都完全正确识别出违规的图片...
后来连续测试多张图片,发现v1版本的图片检测,也有不准确的时候,准备10个违规图片,检测到9个违规,大多数违规都可以检测,可能有些擦边的很难检测的到.
下面是v1版本同步检测正常的内容
{
"errcode": 0,
"errmsg": "ok"
}
下面是v1版本同步检测违规情况下的内容
{
"errcode": 87014,
"errmsg": "risky content rid: 6768f023-2c2404c6-07c994f5"
}
下面是v1版本 异步,直接返回的内容.
{
"errcode": 0,
"errmsg": "ok",
"trace_id": "e2d6b8938611dd35784fedee00722084"
}
下面是v1版本 异步,服务器返回的异常情况,这个是检测异常的服务器推送.注意 isrisky 的值:检测结果,0:暂未检测到风险,1:风险
{
"ToUserName": "gh_dfca478a",
"Encrypt": "xaokWRwhvBKMPdUOagUqbGV\/IZlkfVq5ISJ\/MEPZkX4=",
"FromUserName": "o8Y875O5J_7Hhqe3va8Y",
"CreateTime": "1734931816",
"MsgType": "event",
"Event": "wxa_media_check",
"isrisky": "1",
"extra_info_json": "",
"appid": "wx7d12e78f14bd90e0",
"trace_id": "e2d6b8938611dd35784fedee00722084",
"status_code": "0"
}
注意:
v1版本同步图片检测的路径是本地文件路径,所以可以在本地测试
v1版本异步检测路径是一个服务器的URL地址...所以无法本地测试,例如https:
v1版本同步或者异步检测图片,即使图片不存在或者乱传一个地址或文件名,也是返回ok的...
---------------------------------------------------------------------------------------------------------------
下面是v2版本异步的问题:(v2的异步问题,我暂时还没解决^_^有解决的大佬告知下,感谢)
首先测试了v2文本内容安全msg_sec_check是正确的,违规内容也能检测出.
然后测试了v2图片内容安全media_check_async无论发送什么违规图片,服务器的推送内容都返回pass.
后来我测试改变media_type值为 3 竟然也没有报错,但是为 4 就报错
"errcode": 40004,
"errmsg": "invalid media type rid: 6768d331-03027e9c-152d5418",
media_url的值的地址是腾讯云上的图片,我放浏览器中是可以打开的一个图片url地址.
v2版我随便输入一个不存在的media_url地址,竟然也提示ok
{
"errcode": 0,
"errmsg": "ok",
"trace_id": "6768d52f-44f54e1c-5a63211c"
}.
下面是v2异步服务器推送过来的内容,其实这个图片肯定是违规的.测试了多个违规的图片,全部都pass,关键是哪怕是不存在的图片也显示pass
"trace_id": "6768d52f-44f54e1c-5a63211c",
"version": "2",
"detail": {
"strategy": "content_model",
"errcode": "0",
"suggest": "pass",
"label": "100",
"prob": "90"
},
"errcode": "0",
"errmsg": "ok",
"result": {
"suggest": "pass",
"label": "100"
}
你好,经核实,所传入的图片格式为webp,接口暂不支持该格式,请使用接口支持的图片格式进行重试。
可参考:
https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/sec-center/sec-check/mediaCheckAsync.html
首先这个媒体接口是异步回调的,确保下用的正确,其次官方的监测接口只是参考,并不能完全监测全部的违规分类,还需要自行添加人工或者第三方更加全面的检测接口等审核机制。