软工小程序-第二阶段

news/2024/7/20 1:30:28 标签: 小程序, javascript, 开发语言

检查文字、图片内容是否合规

云函数内容

javascript">const cloud = require('wx-server-sdk');
cloud.init();
exports.main = async (event, context) => {
    console.log(event.txt);
    const { value, txt } = event;
    try {
        let msgR = false;
        let imageR = false;
        //检查 文字内容是否违规
        if (txt) {
            msgR = await cloud.openapi.security.msgSecCheck({
                content: txt
            })
        }
        //检查 图片内容是否违规
        if (value) {
            imageR = await cloud.openapi.security.imgSecCheck({
                media: {
                    header: { 'Content-Type': 'application/octet-stream' },
                    contentType: 'image/png',
                    value: Buffer.from(value)
                }
            })
        }
        return {
            msgR,   //内容检查返回值
            imageR   //图片检查返回值
        };
    } catch (err) {
        // 错误处理
        // err.errCode !== 0
        return err
    }
}
  • 主要用到security.msgSecCheck和security.imgSecCheck这2个微信开放云调用方法

  • 图片security.imgSecCheck 方法只能接收buffer,所以需要把temp的临时图片转化为buffer的形式传过去,我们这里用到 getFileSystemManager 的方法。
    需要在config.json文件中做一个授权配置

javascript">{
    "permissions": {
        "openapi": [
            "security.msgSecCheck",
            "security.imgSecCheck"
        ]
    }
}

检查文字内容安全

javascript">wx.cloud.callFunction({
    name: 'checkContent',
    data: {
        txt: "乐于分享,一起进步"
    },
    success(_res) {
        console.log(_res)
    },
    fail(_res) {
        console.log(_res)
    }
})

检查图片内容安全

javascript">//获取 temp临时图片文件的 buffer
wx.getFileSystemManager().readFile({
    filePath: tempImg[0],  //这里做示例,所以就选取第一张图片
    success: buffer => {
        console.log(buffer.data)
        //这里是 云函数调用方法
        wx.cloud.callFunction({
            name: 'checkContent',
            data: {
                value: buffer.data
            },
            success(json) {
                console.log(json.result.imageR)
                if (json.result.imageR.errCode == 87014) {
                    wx.showToast({
                        title: '图片含有违法违规内容',
                        icon: 'none'
                    });
                    console.log("bad")
                } else {
                    //图片正常
                }
            }
        })
    }
})

先要用 getFileSystemManager() 获取临时图片的buffer(这个是重点),然后再通过wx.cloud.callFunction的方法调用 checkContent的云函数中security.imgSecCheck的方法,校验一张图片是否含有违法违规内容。


http://www.niftyadmin.cn/n/1491759.html

相关文章

树莓派系统的常用的命令

1、dmesg //显示树莓派最近发生的事情 2、cat /var/log/syslog//打印日志 3、树莓派有一个轻量级的X11--LXDE,可以通过raspi-config设置自动登陆LXDE 4、如果喜欢使用图形界面安装程序,可以安装软件包:synaptic sudo …

C语言——输入输出格式

C语言-输入输出格式不同数据类型不同进制%的输入输出小数点前后的位数不同数据类型 字符数据类型含义字节数%cchar字符型1%hdshort短整型2%dint有符号十进制整数4%uunsigned int无符号十进制整数4%ldlong长整型4%lld %llu %llxlong long双长型8%ffloat单精度浮点型4%lfdouble双…

【Flask】Flask解决跨域的问题

在Flask开发RESTful后端时,前端请求会遇到跨域的问题。下面是解决方法。Python版本:3.5.1 下载flask_cors包 pip install flask-cors 1 使用flask_cors的CORS,代码示例 from flask_cors import *app Flask(__name__) CORS(app, supports_cre…

C语言——运算符

运算符优先级 C语言运算符优先级一览表 短路运算 逻辑运算符 && 只要碰到了false或者等价于false的就短路,只要短路了就不会继续往后执行了。如果短路了,得到造成短路的这个值,如果不短路,得到的是第二个值 逻辑运算符…

mysql给root开启远程访问权限

本人在阿里云买了个服务器,自带mysql,感觉不能每次都通过Xshell去操作远程服务器,想尝试通过本地的sqlyog管理工具去连接, 但是即使账号密码全正确,也会报错:error no. 1045 access denied for user root**…

实现选择分类

实现发帖选择tags&#xff0c;实现分类的功能&#xff0c;方便后续搜索相关内容 wxml <view classcontainer><text class"title">选择分区</text><picker bindchange"changeMultiPicker" mode "multiSelector" value&qu…

Raspberry Pi:设置 tight VNC Server 为开机启动

网上看了自动启动 VNC Server 的方法&#xff0c;但是由于懒&#xff0c;脚本都不写 Init Info&#xff0c;导致更新启动项时出现 LSB Tags 等缺失的警告。现将必要的信息补充完整如下。 首先把以下内容写入 /etc/init.d/tightvncserver #!/bin/sh ### BEGIN INIT INFO # Provi…

Linux 自动休眠功能的关闭方法

CDLinux 自动休眠功能的关闭方法&#xff1a; 控制台下使用xset命令来完成。 xset q 可以查看当前屏幕保护和电源管理的状态信息 具体设置时&#xff0c;常用的有以下参数&#xff1a; xset s //这个参数设置屏幕保护时间 xset dpms //这个参数设置电源管理时间 通常仅仅设…