微信小程序之无需服务端支持实现内容安全检查
微信小程序之无需服务端支持实现内容安全检查
微信小程序审核未通过,原因如下:
为避免您的小程序被滥用,请你完善内容审核机制,如调用小程序内容安全API,或使用其他技术、人工审核手段,过滤色情、违法等有害信息,保障发布内容的安全
一个平平无奇的小程序,在一次平平无奇的升级优化过程中,竟然审核未通过,很奇怪的是之前的升级过程中一直没有此问题!不过,出了问题总要解决的,好在未通过原因中给出了解决办法:“可以调用小程序内容安全API,或使用其他技术”。既然小程序提供了现成的API,那就撸TA……
1. 查看开发文档
首先在微信小程序开发文档中搜索关键词:内容安全,可以发现微信还是很人性化的,提供了云调用的调用方式来进行违法违规检查,不需要服务端的支持,这样对前端的同学还是非常友好的。内容安全文档地址

2. 开通云开发
云调用是云开发提供的基于云函数使用小程序开放接口的能力
开通云开发请参考微信官方文档:云开发。

开通云开发,默认使用基础版1,如无特殊业务要求,使用此版本即可,是免费的哦~
云开发要求创建环境,留意此处的环境ID,在小程序调用云函数的时候会用到。

3. 创建云函数及配置权限
3.1 创建云函数目录
在小程序项目目录下新建云函数目录cloudfunctions,并在project.config.json中注册该目录,注册后该目录会显示有云图标,如图所示:

3.2 创建云函数
在云函数根目录下新建云函数msgSecCheck,云函数新建成功后,会生成固定的目录结构,如图所示:


在云函数中调用内容安全检查的API,并对结果进行处理。

3.3 配置云函数权限
根据官方文档要求:
需在
config.json中配置security.msgSecCheckAPI 的权限
在云函数msgSecCheck目录下新建config.json文件,配置云调用权限,如图所示:

{
"permissions": {
"openapi": [
"security.msgSecCheck"
]
}
}
3.4 上传并部署云函数
完成后的云函数如果不上传并部署的话,小程序是无法调用的,所以云函数有改动的话,务必及时上传并部署。


4. 小程序调用云函数
小程序调用云函数,此处的env的值就是上文中说到的环境ID,name的值是新建的云函数的文件名。
wx.cloud.init({
env: 'test-msod1',
});
let sec = true;
wx.cloud.callFunction({
name: 'msgSecCheck',
data: {
content: "需要检测的文本内容"
},
success: function(res) {
sec = 0 === res.result.errCode;
},
fail: function(err) {
sec = false;
},
complete: function() {
if (!sec) {
wx.showToast({
title: '文本含有违法违规内容',
icon: 'none',
mask: true,
});
}
}
});
至此,大功告成!
微信小程序之无需服务端支持实现内容安全检查的更多相关文章
- 微信小程序初见+nodejs服务端 (一个简单的博客)
推荐网址: 腾讯云快速开发(nodejs前后端):https://developers.weixin.qq.com/miniprogram/dev/qcloud/qcloud.html#%E5%AF% ...
- Fundebug微信小程序BUG监控服务支持Source Map
摘要: 自动还原真实出错位置,快速修复BUG. Source Map功能 微信小程序的Source Map功能目前只在 iOS 6.7.2 及以上版本支持. 微信小程序在打包时,会将所有 js 代码打 ...
- (三)微信小程序之发送服务通知(模板消息)
1.后端获取AccessToken返回给微信端 微信小程序端请求后端得到AccessToken 2.后端获取openid返回给微信端 微信小程序端登录请求后端得到openid 3.发送消息 ...
- 行星万象表白墙微信小程序、社交微信小程序,后台完整,支持多区域运营,扫码体验。
简介 中国目前大概有5000个表白墙,累计用户近3000万,是一个庞大的群体,但现在大都以微信朋友圈为基础进行信息中转,但是这种模式经营者和用户都不友好,尤其是经营者无法变现,用户无法公开评论,这些种 ...
- 微信小程序 canvas 字体自动换行(支持换行符)
微信小程序 canvas 自动适配 自动换行,保存图片分享到朋友圈 https://github.com/richard1015/News 微信IDE演示代码https://developers.w ...
- 微信小程序到底把什么定义为风险内容?
目录 起因 经过和结果 附录: 起因 之前做一个群相册的小程序,因为涉及到图片和评论等内容的发布分享.因此,微信后台要求有一定的内容安全检测能力. 但是,我用别家的内容检测用的好好的,在国庆前被微信警 ...
- 微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)
最近在学小程序,在把当前画布指定区域的内容导出并生成图片保存到本地这个知识点上踩坑了. 这里用到的方法是: wx.canvasToTempFilePath(),该方法作用是把当前画布指定区域的内容导出 ...
- 微信小程序之动态添加、删除指定内容(view)和获取input值
这次遇到个问题: 1. 动态的添加指定的view内容..嗯..很简单..wx:for就搞定 2. 动态添加的内容中有input,最终获取值的时候,要获取到所有input的值并且是一个数组..嗯.. 3 ...
- 记一次微信小程序开发
之前在网上看到博客园新闻服务开放接口,因为自己本身有看博客园IT新闻的习惯,为了能随时随地简洁方便的浏览新闻,于是萌生了一个利用开放API开发一个微信小程序的想法. 1. mpvue初探 平时技术栈有 ...
- 多个微信小程序一个服务端架构
由于某些特定的业务场景,当多个小程序需要一个服务端后台提供数据时,大家可能想到是HTTP路由.是的,实际上我们使用微服务的GateWay网关也是一样的,如下图微服务架构: 网关GateWay的作用在于 ...
随机推荐
- win10 gvim
前言 现有的vscode太过于繁重,notepad++也不理想,顿来心思,想在win10配置一个gvim环境. 正文 安装gvim,从releases中找一个x64的.exe下载安装即可,安装完毕,把 ...
- Java核心基础之数据类型
Java内置数据类型 计算机基础知识 bit 位 ,即0或者1, 0101010110 byte字节,8位作为⼀个字节,字节是处理数据的基本单位 1 byte = 8bits 1KB = 1024 b ...
- js 获取年、月、周、当前日期第几周、这月有那几周
查看当前日期是第几周:https://wannianli.tianqi.com/today/zhou/ //获取完整的日期 var date=new Date; var y = date.getFul ...
- CSS:弹性布局(display:flex)
道友请了~ 最近小道在修练主修功法<嘉蛙>之余,偶然从一名散修手中得到了一本<CSS秘籍>,刚好近期有自己做微信小程序的打算,这不是瞌睡了给递枕头么.欣喜若狂,翻开第一章,拜读 ...
- Ubuntu16.04设置静态IP或动态ip(DHCP)
Ubuntu16.04设置静态IP或动态ip(DHCP) 设置静态IP 1,vim编辑/etc/network/interfaces 网络配置文件 sudo vim /etc/network/inte ...
- Jmeter函数助手12-threadNum
threadNum函数用于获取当前线程编号.该函数没有参数,直接引用即可. 1.线程数可在组件[测试计划->线程组]设置.如下是不传入循环次数的${__threadNum}. "调试取 ...
- python 音频处理(1)——重采样、音高提取
采集数据->采样率调整 使用torchaudio进行重采样(cpu版) 首先导入相关包,既然使用torch作为我们的选项,安装torch环境我就不必多说了,如果你不想用torch可以使用后文提到 ...
- 【RabbitMQ】03 订阅模式
Pub / Sub 订阅模式 特点是 一条消息可以给多个消费者接收了 首先创建订阅模式生产者发生一些代码变动: package cn.dzz.pubSub; import com.rabbitmq.c ...
- 关于python:pip安装选项“ ignore-installed”和“ force-reinstall”之间的区别
参考: https://www.codenong.com/51913361/ ==================================================== 官方文档解释: ...
- C# 委托和闭包
前言 本文只是为了复习,巩固,和方便查阅,一些知识点的详细知识会通过相关链接和文献标记出来. 委托是什么 大部分的解释是 委托是一个对方法的引用,可以不用自己执行,而是转交给其他对象.就好比每天都有一 ...