这是一位粉丝需要的教程,主要功能就是通过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请求文件进行检测。返回结果如下:
这里我没有填写appid和密钥所以出错了,填上后就会返回正确的检测结果。
如果有其他问题可以直接留言,我会抽空为大家解决的。