在调用微信安全内容审核的时候,遇到如下的报错,百度也是搜了一大圈,后来才找到解决的方法,下面就谈谈我的跳坑经历,方便其他同学遇到这样的问题可以快速解决。
这里我们只谈图片内容审核的,其中的文本内容审核比较容易,我就不说了,主要就是图片这里容易遇到坑。
{"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