首先看张图,相信很多人遇见过吧,开发微信小程序的时候,由于有用户上传文字或者图片内容,就必然存在恶意上传非法内容,这个时候就需要对内容进行检测,检测的方法也很多,有自定义检测的,人工检测的,调用api接口检测等等。下面是php调用微信api接口检测的一些简要介绍,避免入一些坑。
这是接口基于HTTPS协议。开发者服务器可以调用此接口校验一段文本是否含有敏感信息。
用户个人资料违规文字检测;媒体新闻类用户发表文章,评论内容检测;游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。
单个appid调用上限为2000次/分钟,1,000,000次/天
https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN
/**
* Note:检测文本是否含有违禁内容(频率限制:单个 appId 调用上限为 1000 次/分钟,100,000 次/天)
* @param $content (需要检测的文本内容,最大520KB)
* @return false|string
*/
public function msg_sec_check($content)
{
$url = 'https://api.weixin.qq.com/wxa/msg_sec_check?access_token=' ;
$file_data = '{ "content":"'.$content.'" }';
return self::post2($url ,$file_data) ;
}
这是接口基于HTTPS协议。开发者服务器可以调用此接口校验一张图片是否含有敏感信息。
单个appid调用上限为1000次/分钟,100,000次/天
https://api.weixin.qq.com/wxa/img_sec_check?access_token=ACCESS_TOKEN
/**
* Note:检测图片是否含有违禁内容(频率限制:单个 appId 调用上限为 1000 次/分钟,100,000 次/天)
* 图片尺寸不超过 750px * 1334px
* @param $file_path
* @return bool|string
*/
public function img_sec_check($file_path)
{
$url = 'https://api.weixin.qq.com/wxa/img_sec_check?access_token=' ;
//php5.5之后
$file_data = array("media" => new \CURLFile($file_path['tmp_name'],$file_path['type'],$file_path['name']));
//php5.4
//$file_data = array("media" =>'@'.realpath($file_path['tmp_name']));
return self::post2($url,$file_data);
}
1.第三方的图片地址不行。必须用上传图片时的临时地址才可以调用接口。
//参数说明 $_FILES['file'](TP5接收文件方法)
$file_path
2.PHP版本高于5.5时,curl文件上传必须使用CurlFile对象
/**
* Note:发送post请求
* @param $url
* @param $file_data
* @return bool|string
*/
private function post2($url ,$file_data)
{
//获取access_token
$AccessToken = new AccessToken() ;
$access_token = $AccessToken -> getAccessToken() ;
$url = $url . $access_token ;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch , CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch , CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $file_data);
//发送请求获取结果
$output = curl_exec($ch);
//关闭会话
curl_close($ch);
return json_decode($output,true);
}
官方接口文档点击跳转
最后,如果觉得对你有所帮助的话,点个赞吧,谢谢~~