小程序文字图片内容安全接口开发-PHP

首先看张图,相信很多人遇见过吧,开发微信小程序的时候,由于有用户上传文字或者图片内容,就必然存在恶意上传非法内容,这个时候就需要对内容进行检测,检测的方法也很多,有自定义检测的,人工检测的,调用api接口检测等等。下面是php调用微信api接口检测的一些简要介绍,避免入一些坑。
在这里插入图片描述

1.文本安全内容检测接口

这是接口基于HTTPS协议。开发者服务器可以调用此接口校验一段文本是否含有敏感信息。

应用场景举例

用户个人资料违规文字检测;媒体新闻类用户发表文章,评论内容检测;游戏类用户编辑上传的素材(如答题类小游戏用户上传的问题及答案)检测等。

频率限制

单个appid调用上限为2000次/分钟,1,000,000次/天

URL
https://api.weixin.qq.com/wxa/msg_sec_check?access_token=ACCESS_TOKEN
参数

小程序文字图片内容安全接口开发-PHP_第1张图片

PHP Code
/**
     * 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) ;
    }

2.图片安全内容检测接口

这是接口基于HTTPS协议。开发者服务器可以调用此接口校验一张图片是否含有敏感信息。

应用场景举例
  1. 图片智能鉴黄:涉及拍照的工具类应用(如美拍,识图类应用)用户拍照上传检测;电商类商品上架图片检测;媒体类用户文章里的图片检测等。
  2. 敏感人脸识别:用户头像;媒体类用户文章里的图片检测;社交类用户上传的图片检测等。
频率限制

单个appid调用上限为1000次/分钟,100,000次/天

URL
https://api.weixin.qq.com/wxa/img_sec_check?access_token=ACCESS_TOKEN
参数小程序文字图片内容安全接口开发-PHP_第2张图片
PHP Code
/**
 * 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对象

post2方法
/**
 * 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);
}

官方接口文档点击跳转
最后,如果觉得对你有所帮助的话,点个赞吧,谢谢~~

你可能感兴趣的:(微信小程序,THINKPHP5)