调用微信安全内容审核 图片审核 img_sec_check 遇到提示 "errcode":41005,"errmsg":"media data mi

  在调用微信安全内容审核的时候,遇到如下的报错,百度也是搜了一大圈,后来才找到解决的方法,下面就谈谈我的跳坑经历,方便其他同学遇到这样的问题可以快速解决。

  这里我们只谈图片内容审核的,其中的文本内容审核比较容易,我就不说了,主要就是图片这里容易遇到坑。

{"errcode":41005,"errmsg":"media data missing hint: [zKfcwnNre-61nAMA]"}

POST https://api.weixin.qq.com/wxa/img_sec_check?access_token=ACCESS_TOKEN

 

 

access_token string 是 接口调用凭证
media FormData 是 要检测的图片文件,格式支持PNG、JPEG、JPG、GIF,图片尺寸不超过 750px x 1334px

微信官方文档就提到这两个值,access_token想必大家都知道,我就不累述了。

那么这个media值需要 formdata要怎么传值呢?下面我谈下我们php开发的

具体方法就是你把图片要先存到本地,然后使用本地服务器的绝对路径地址

然后new 一个 curlfile,然后提交给微信接口就可以了,直接上代码吧,具体过程就是下面这样。先获取远程的图片路径地址,然后下载保存到你的服务器里,然后new CURLFile 

$img = file_get_contents($param['img']);  // img就是远程的图片地址 http的图片地址
$filePath = dirname(__FILE__).'/pic/1.jpg;  //注意这里是填写你保存这张远程图片在你服务器上的绝对路径地址
file_put_contents($filePath, $img);
$real_path=realpath($filePath);

$obj = new CURLFile($real_path);
$obj->setMimeType("image/jpeg");
$postdata['media']=$obj;

$this->http_request($url, $postdata);


//HTTP请求(支持HTTP/HTTPS,支持GET/POST)
private function http_request($url, $data = null)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);

if (!empty($data)) {
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS,$data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$output = curl_exec($curl);
curl_close($curl);

return $output;
}

  好了,今天就给大家分享到这里。    秋峰,phper、javascript前端开发,目前自创业,做项目系统开发,做公众号以及小程序等的开发, 今天就给大家分享到这里,希望对大家有所帮助。

     欢迎交流 大家相互学习   我的 微信号   qiufeng2983

 

上一篇:PHP中使用CURL实现GET、POST、PUT、DELETE请求


下一篇:366tool为你揭晓微信H5活动广告域名防封的最新解决方案