小程序中内容审核功能的使用(后台使用thinkPHP5.1)
本文包含文本和图片的检测
//接收要检测的文本内容并调用检测方法
public function textCheck(Request $request){
//内容安全识别 $data['content']为要检测的文本内容
$data['content'] = htmlspecialchars($request->post('content'));
$content = $data['content'];
$output = $this->curlText($content);
//只有当$output->errcode==0时审核通过
if($output->errcode!=0){
return json(['code' => 500,'msg'=>'内容含有违法违规内容,请修改后再提交']);
die;
}
}
//接收要检测的图片并调用检测方法
public function imgCheck(Request $request){
// 获取表单上传文件 例如上传了001.jpg
$file = request()->file('file');
$upload_path = 'uploads';
$info = $file->move($upload_path);
$path = $info->getSaveName();
//微信接口校验图片是否违规
$output = $this->curlImages($path);
if($output['errcode']!=0){
return json(['code'=>500,'msg'=>'图片不合规范']);
}
}
//获取access_token,不能用于获取用户信息的token
public function getAccessToken(){
$token_file = json_decode(file_get_contents('token.json'));
//有效期外才重新获取
if($token_file->expires_time<time()){
$appid = $this->APPID; //你的小程序appid
$appsecret = $this->APPSERRET; //你的小程序appsecret
$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $appid . '&secret=' . $appsecret;
$token_json = file_get_contents($url);
$token_json = json_decode($token_json);
$token_file->access_token = $token_json->access_token;
$token_file->expires_time = time()+7200;
$access_token = $token_json->access_token;
file_put_contents('token.json', json_encode($token_file));
}else{
$access_token = $token_file->access_token;
}
return $access_token;
} //检测文本是否含有违禁内容(频率限制:单个 appId 调用上限为 1000 次/分钟,100,000 次/天)
private function curlText($content){
$ACCESS_TOKEN = $this->getAccessToken();
$url = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=".$ACCESS_TOKEN;
$file_data = '{ "content":"'.$content.'" }';//$content(需要检测的文本内容,最大520KB)
$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);//发送请求获取结果
$output=json_decode($output,false);
curl_close($ch);//关闭会话
return $output;//返回结果
}
//检测图片是否含有违禁内容
private function curlImages($path){
$ACCESS_TOKEN = $this->getAccessToken();//自己获取access_token
$url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=".$ACCESS_TOKEN;
$file_path = 'uploads/'.$path;//接受表单文件保存本地的文件地址
$file_data = array("media" => new \CURLFile($file_path));
$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);//关闭会话
$output = json_decode($output,true);
return $output;
}
小程序中内容审核功能的使用(后台使用thinkPHP5.1)的更多相关文章
- 微信小程序中悬浮窗功能的实现(主要探讨和解决在原生组件上的拖动)
问题场景 所谓悬浮窗就是图中微信图标的按钮,采用fixed定位,可拖动和点击. 这算是一个比较常见的实现场景了. 为什么要用cover-view做悬浮窗?原生组件出来背锅了~ 最初我做悬浮窗用的不是c ...
- 高大上的微信小程序中渲染html内容—技术分享
大部分Web应用的富文本内容都是以HTML字符串的形式存储的,通过HTML文档去展示HTML内容自然没有问题.但是,在微信小程序(下文简称为「小程序」)中,应当如何渲染这部分内容呢? 解决方案 wxP ...
- 微信小程序中在swiper-item中遍历循环添加多个数据内容(微信小程序交流群:604788754)
在小程序中为了实现一个<swiper-item>中添加多个内容重复的标签,那就需要使用wx:for循环.如果按小程序的简易教程,循环加在block中,而swiper-item放在里面.所有 ...
- 微信小程序中公用内容
微信小程序中各个页面调用公用的js 在util.js文件中 // 跳转哪里 function go(where) { wx.reLaunch({ url: where, }) } // 将方法暴露出去 ...
- 微信小程序中涉及虚拟产品购买,ios暂不支持的相关整理意见
这个东西呢也不能怪微信小程序,属实苹果搞的事情,那怎么小程序相关内容去通过审核呢? 首先我们要搞清楚哪些属于虚拟商品:如某某书币,某某会员,或者是提前编辑好的网课,文档等都属虚拟商品购买,简言之就是没 ...
- 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等
在上篇随笔<基于微信小程序的系统开发准备工作>介绍了开发微信小程序的一些前期的架构设计.技术路线 .工具准备等方面内容,本篇随笔继续这个步骤,逐步介绍我们实际开发过程中对SSL协议的申请及 ...
- 全栈开发工程师微信小程序-中(中)
全栈开发工程师微信小程序-中(中) 开放能力 open-data 用于展示微信开放的数据 type 开放数据类型 open-gid 当 type="groupName" 时生效, ...
- 微信小程序中的 web-view 组件
web-view 是一个可以承载 web 网页的容器,当 WXML 文件中存在 web-view 组件时,其他组件会自动全部失效,而且 web-view 承载的组件会自动铺满小程序的整个页面.其他组件 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(二十一):在小程序中使用 WebSocket (.NET Core)
本文将介绍如何在 .NET Core 环境下,借助 SignalR 在小程序内使用 WebSocket.关于 WebSocket 和 SignalR 的基础理论知识不在这里展开,已经有足够的参考资料, ...
随机推荐
- Tmux 速成教程:技巧和调整
本文转自:http://blog.jobbole.com/87584/ 简介 有些开发者经常要使用终端控制台工作,导致最终打开了过多的标签页.如果你也是他们当中的一员,或者你正在实践结对编程,那么我推 ...
- JavaScript的数据类型有哪些?
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Web of science|SCIE|影响因子|SSCI|高被引论文|领域中热点论文|
信息检索: 数据库 Web of science 影响因子只是针对期刊打分,并不是对文章打分.所以对文章评价可以看引用次数. SCIE (Science Citation Index Expanded ...
- 吴裕雄--天生自然 R语言开发学习:时间序列(续三)
#-----------------------------------------# # R in Action (2nd ed): Chapter 15 # # Time series # # r ...
- html常用事件
1.onblur 当窗口失去焦点时运行 2.click 点击鼠标触发的事件 3.onfocus 当窗口获得焦点时运行 4.oninput 当元素获得用户输入时运行 5.onsubmit 当提交表单时运 ...
- 算法设计与分析-Week12
题目描述 You are given coins of different denominations and a total amount of money amount. Write a func ...
- 点击穿透bug · Jaywii
微信点击穿透Bug 问题描述:在移动端为了去除点击延迟引入了fast-click,然而在房贷计算器的开发中遇到了这样一个bug,用户点击了select之后,微信在弹出选择器之后会瞬间因为约300ms的 ...
- VI.应用-Trajectory Data Mining
$textbf{Trajectory Data Mining: An Overview}$ 很好的一篇概述,清晰明了地阐述了其框架,涉及内容又十分宽泛.值得细读. 未完成,需要补充. $textbf{ ...
- [红日安全]Web安全Day4 - SSRF实战攻防
本文由红日安全成员: MisakiKata 编写,如有不当,还望斧正. 大家好,我们是红日安全-Web安全攻防小组.此项目是关于Web安全的系列文章分享,还包含一个HTB靶场供大家练习,我们给这个项目 ...
- Mongodb 对于Sort排序能够支持的最大内存限制查看和修改
MongoDB Server对于Sort排序能够支持的最大内存限制查看: > use admin switched to db admin >db.runCommand({ getPara ...