赞
踩
有UGC内容的微信小程序上架之前有一个明确的内容安全指引,需要使用一些微信小程序自带的图文媒体api 拦截一些不合规的情况。以下分享一下项目案例,以图文为主,后台为云函数,咱们用文字检测抛砖引玉,图片差不多。
首先看下使用到的文字检测api(微信自带 + 阿里云内容检测):
- /* 微信自带的文字检测 */
-
- const { openid, scene, content } = ...;
-
- // ...
-
- const res = await acloud.openapi.security.msgSecCheck({
- openid,
- scene,
- version: 2,
- content,
- title: 'utf-8'
- });
-
- if (res.suggest === 'review') { //需要进一步审核的情况 }
- if (res.label !== 100) { // 枚举值100为正常 }
-
- // 进一步的反馈给前端...
-
- // api 链接https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/sec-center/sec-check/msgSecCheck.html
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
调好之后,使用了一下,发现确实可以拦截一些文字内容,但好像不是很全面。考虑到UGC的内容是核心的东西,得尽量覆盖多一些,以防上线之后被打回,所以搜索了几个方案之后,决定配合使用阿里云的文本审核增强版,即用即付的收费策略,比较适合中小型小程序的成本控制策略。
接入阿里文本审核有两种方式,一种用sdk,一种用http调用。上代码:
使用之前,准备工作,主要是要拿到和api通讯的密钥:AccessKeyId 和 AccessKeySecret。详细参考官方链接 :接入api教程(前置工作 + 调用)。
拿到密钥之后,去云函数存储在云函数的环境变量中。如下图:
云端环境这样配置即可,本地调试时,这个配置没用,需要去本地云函数环境中需要手动配置一下密钥:
之后,就可以正常进行本地云函数的测试,在使用密钥的时候用以下方式取得:
ALIBABA_CLOUD_ACCESS_KEY_SECRET = process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET
下面是阿里云文本审核的两种调用方式,sdk不叫简单,可以去官方链接查看:SDK接入方式
这种方式,我去调用的时候,看请求和阿里那边是通的,但是云函数里返回超时,和阿里的技术人员沟通几次之后,也没啥效果,后面就换用了http的方式调用,结果是
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。