基于PHP的文本安全审核教程附加案例源码

这是一位粉丝需要的教程,主要功能就是通过PHP实现小程序接入文本安全审核。逻辑很简单,就是小程序端将需要检测的文本提交给云端,本例云端为一个PHP接口,然后这个接口将文本使用官方的接口进行检测,最后将检测结果返回给小程序端,小程序端再通过返回结果判断文本是否违规。

小程序端的代码很简单,这里附一个简单的DEMO:

wx.request({
  url: '域名/textCheck.php',
  method:"POST",
  data:{
    contnet:this.data.contnet //需要检测的文本
    },
  success:res=>{
    console.log(res)
    //根据返回值进行后续开发
   }
})

这里采用的是POST提交,其中textCheck.php就是我们需要写的PHP检测文本,以下是一个简单的案例,可以直接使用,不过推荐进行进一步的封装或是安全性操作。

// 定义小程序AppID和AppSecret
$appid = 'YOUR_APPID';
$appsecret = 'YOUR_APPSECRET';


// 获取POST请求的文本
$content = $_POST['content'];


// 获取access_token
function getAccessToken($appid, $appsecret) {
    // 构建access_token请求URL
    $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";


    // 发送请求,获取access_token
    $result = sendRequest($url);
    $access_token = json_decode($result, true)['access_token'];


    return $access_token;
}


// 文本内容检测
function textCheck($access_token, $content) {
    // 构建检测请求URL和格式化数据
    $url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token={$access_token}";
    $data = json_encode(array('content' => $content), JSON_UNESCAPED_UNICODE);


    // 发送请求,获取检测结果
    $result = sendRequest($url, $data);


    // 解析返回值,提取审核结果
    $result = json_decode($result, true);


    return $result;
}


// 封装HTTP请求
function sendRequest($url, $data = null) {
    $ch = curl_init();


    curl_setopt($ch, CURLOPT_URL, $url);
    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);


    $result = curl_exec($ch);
    curl_close($ch);


    return $result;
}


// 响应JSON格式数据
function responseJson($status, $result) {
    header('Content-Type: application/json');
    $data = array(
        'status' => $status,
        'result' => $result,
    );
    return json_encode($data);
}


// API函数
function checkApi($content) {
    // 检查请求方法是否为POST
    if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
        return responseJson('error', '必须使用POST请求');
    }
    // 获取访问令牌
    $access_token = getAccessToken($appid, $appsecret);
    // 文本内容检测
    $result = textCheck($access_token, $content);
    return responseJson('success', $result);
}




//执行检测
echo checkApi($content);

上面的代码为一个简单的案例,并做了一些简单的封装,注释也比较清楚,应该很容易理解的,在最上方定义小程序AppID和AppSecret,然后通过POST请求文件进行检测。返回结果如下:

6b6c7bec5b56f54b2eb92a36f72eecdf.png

这里我没有填写appid和密钥所以出错了,填上后就会返回正确的检测结果。

如果有其他问题可以直接留言,我会抽空为大家解决的。

猜你喜欢

转载自blog.csdn.net/qq_39653624/article/details/129891746
今日推荐