微信小程序的文本内容安全审核,有用户输入内容的小程序都用的上,本人自己项目开发使用的接入代码分享给大家,直接复制粘贴过去就能用,如果用的上记得点赞支持。
上代码,配合之前发的access_token获取接口使用,把下面代码里面的token刷新接口地址换成你的即可。https://blog.csdn.net/sinat_41743732/article/details/140603905 :
<?php
// 读取和刷新AccessToken的函数
function getAccessToken() {
$tokenPath = 'access_token.txt';
if (file_exists($tokenPath)) {
$data = json_decode(file_get_contents($tokenPath), true);
if ($data['expires_in'] < time()) {
// Token过期,刷新Token
$refreshUrl = "https://dk82.com/token.php";// 获取AccessToken的接口
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $refreshUrl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
file_put_contents($tokenPath, $response);
$data = json_decode($response, true);
}
return $data['access_token'];
}
return null;
}
// 获取请求数据
$data = json_decode(file_get_contents("php://input"), true);
// 检查是否有文本内容被传入
if (!empty($data['text'])) {
$text = $data['text'];
$accessToken = getAccessToken(); // 获取最新的AccessToken
// 调用微信内容安全接口
$result = checkContentSafety($text, $accessToken);
// 直接返回结果
echo $result;
} else {
// 没有接收到文本
echo json_encode(array("error" => "No text provided"));
}
function checkContentSafety($text, $accessToken) {
$url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=" . $accessToken;
// 使用JSON_UNESCAPED_UNICODE标志来防止字符被转义
$data = json_encode(array("content" => $text), JSON_UNESCAPED_UNICODE);
// 记录POST数据到日志文件(适用于生产环境)
// file_put_contents('log.txt', "POST Data: " . $data . "\n", FILE_APPEND);
// 初始化cURL会话
$curl = curl_init();
// 设置cURL选项
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
// 执行cURL会话
$response = curl_exec($curl);
$error = curl_error($curl);
// 关闭cURL会话
curl_close($curl);
// 错误处理
if ($error) {
return json_encode(array("error" => "cURL Error #" . $error));
} else {
return $response; // 直接返回原始响应
}
}
?>
使用方法和微信官方的接口一致,新建一个php文件把上面代码保存,替换token地址,然后post请求安全接口地址即可。
这是vue前端调用代码:
// 提交
submit() {
// 检查文本内容安全
this.checkTextSafety().then(isSafe => {
if (isSafe) {
// 有id后放开即可
/*
// #ifdef MP-WEIXIN
if (!this.isEnded) {
return this.adFun(); // 观看广告
}
// #endif
*/
this.submitReq(); // 如果检测通过,继续提交请求
} else {
uni.showToast({
title: '文本内容包含敏感信息,请修改后重试',
icon: 'none'
});
}
}).catch(err => {
console.error('内容检测错误:', err);
uni.showToast({
title: '内容检测服务异常',
icon: 'none'
});
});
},
checkTextSafety() {
return new Promise((resolve, reject) => {
uni.request({
url: api.anquan, // 替换成你的后端API地址
method: 'POST',
data: {
text: this.formData.text + " " + this.formData.text2 + " " + this.formData.text3
},
success: (res) => {
if (res.data && res.data.errcode === 0) {
resolve(true);
} else {
resolve(false);
}
},
fail: (err) => {
reject(err);
}
});
});
},
内容安全接口接入全部代码分享完毕,直接拿去就能用的,记得点赞支持哦。
标签:vue,微信,api,text,error,curl,data,cURL,CURLOPT From: https://blog.csdn.net/sinat_41743732/article/details/140604747