微信小程序中图片上传与内容安全审核的全面指南

小程序内容安全检测的重要性

  之前我们介绍过小程序中的图片裁剪功能,这个功能在某个微信小程序中一直运行良好。然而,突然有一天,我收到了一条系统消息,提示我的小程序存在内容安全风险,缺乏对不法违规内容的过滤机制,需要进行整改。这条消息是安全风险警告,如果不在限期内进行整改,小程序的一些功能将被禁用,比如无法被搜索、无法通过二维码打开、无法分享内容等。

微信小程序内容审核规范

  在进行修改之前,我首先了解了微信小程序的内容审核规范。根据微信小程序平台的运营规范,小程序必须设置过滤违法、违规等不当信息的机制。具体来说,必须调用内容安全检测接口,校验文本和图片是否含有敏感内容,以提升信息安全防护能力,降低被恶意利用导致传播恶意内容的风险。

内容安全检测接口

  微信小程序提供了多种内容安全检测接口,包括文本检测接口和音频图片检测接口。这些接口基于智能程序进行判断,能够有效检测文本和图片中是否存在色情、时政违规、暴恐等有害内容。针对图片检测,还有一个专门的接口用于检测一张图片是否违法违规。

使用云函数进行内容安全检测

  为了在小程序中使用这些接口,我们可以借助微信小程序的云服务。微信云服务可以帮助我们快速搭建功能,避免自己搭建服务器的麻烦。要在小程序中使用云服务,创建小程序时需要选择开启微信云服务。需要注意的是,微信云服务是收费的,但提供1个月的试用期。

创建云函数进行图片检测

  针对内容安全检测,我们可以使用云函数。首先,在已开启云服务的小程序项目中,右键单击云目录,创建云函数。例如,我们创建一个名为“imageCheck”的云函数,用于处理图片检测。在云目录下会新建一个名为“imageCheck”的文件夹,并自动创建三个文件:index.jspackage.jsonproject.config.json

  在index.js文件中,我们可以编写图片检测代码,调用微信提供的接口。首先,初始化云对象,在入口函数中,通过参数接收图片信息。图片的base64格式二进制数据需要在中转为Buffer数据,并设置图片的媒体类型。设置好以后,云函数就创建好了,小程序前端就能调用它对图片进行检测。

实现小程序图片上传功能

  在小程序中,图片上传功能比较简单,可以直接使用微信提供的wx.chooseImage接口,用于选择媒体文件(图片或视频)。通过这个接口,我们可以从手机相册选择图片上传,并获取到图片的临时目录地址。

图片压缩处理

  由于图片安全检测接口对图片尺寸和格式有要求,我们需要对接收到的图片进行压缩。通过wx.getImageInfo接口,我们可以获取图片的宽高信息。然后,使用canvas元素对图片进行压缩,确保图片的宽高不超过120像素。压缩后的图片通过wx.canvasToTempFilePath接口生成新的临时图片文件,接下来就可以对它进行安全检测了。

调用云函数进行图片安全检测

  在调用云函数之前,我们需要将图片临时文件转换为Buffer格式的数据。通过微信小程序提供的wx.getFileSystemManager().readFile接口,可以以Buffer格式读取文件的二进制内容。接着,我们就可以调用云函数,进行图片内容安全检测了。

文本内容安全检测

  除了图片检测,微信小程序还提供了文本内容安全检测接口。调用这个接口的流程与图片检测基本一致,只不过在数据处理和参数传递上有一些区别。在云函数部分,需要传入文本内容,通过获取微信上下文对象,可以得到文本内容。在小程序前端部分调用云函数,传入文本框的输入内容,对文本进行审核检测。

人工审核的必要性

  虽然微信小程序提供了智能审核服务,但并不能完全解决问题。微信小程序者文档中建议,最好进行人工审核,以弥补智能审核的不足。然而,进行人工审核需要上传用户的图片和输入文本,通过后台审核干预的情形进行处理,这对很多小程序来说成本较大。

申诉失败的风险

  如果小程序因为内容安全被封禁,在找微信客服人员进行申诉时,如果微信客服人员坚持要求人工审核,对于个人者来说,这个小程序基本上就算玩完了,可以直接弃用。因为申诉失败的概率实在太大了!

  通过以上步骤,我们可以有效地在小程序中进行内容安全检测,确保小程序的内容符合微信平台的规范,避免被封禁的风险。

© 版权声明
THE END
分享