碰到的问题是服务器后端请求security.imgSecCheck接口进行鉴黄,返回值为41005,缺失媒体文件
按照官方文档,只有两个参数:access_token和media
access_token直接接在url后,这个一般都不会有问题。media的数据类型要求为formdata,一般问题都出在这里。
下面是PHP 请求demo
$data['media'] = new \CURLFile($_FILES['file']['tmp_name']);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$data = curl_exec($ch);
curl_close($ch);
return $data;
重点在于
$data[‘media’] = new \CURLFile($_FILES[‘file’][‘tmp_name’]);
CURLFile($path)可以用来获取服务器上的一张图片处理成formdata类型的数据,接下来应该不会存在问题了。
我用了上面的代码段,$_FILES['file']['tmp_name'] 我用的是我们服务器上https的url,返回的$data是为空这是怎么回事呢
"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [duAtoA0851sz45!]请问为什么我的会一直报这个错,我用access_token 调用检测文字是可以的