运营中的小程序收到了腾讯下发的信息,说我们的小程序没有设置过滤违法违规信息的安全机制,并限期整改,否则小程序的“被搜索能力”和“被分享能力”将会收到限制。
小程序被限制搜索和分享,无疑给小程序判了死刑,毕竟没有了搜索和分享,也就意味着没有了流量和用户。
目前可用的接入方案:
方案1 :小程序自带的同步同步API:security.imgSecCheck
优点:小程序自带,格式支持PNG、JPEG、JPG、GIF,单个 appId 调用上限为 2000 次/分钟,200,000 次/天,基本满足需要。
缺点:图片大小限制1M ,图片尺寸不超过 750px x 1334px,需开通云开发或者开发者后台调用,如开通云开发,基础费用19.9/月,另外的调用次数+流量,需额外付费。后台调用则无需付费,但访问流量如果上来,对服务器也是一种负担。
虽有尺寸限制,但是在实际应用中发现,尺寸到4000 x 4000都可以,但是4000以上会出现问题。另外,官方已提示该同步接口已经放弃维护,需要开发者自行斟酌风险。
方案2 :小程序自带的异步API: security.mediaCheckAsync
优点:单个文件大小不超过10M,解决手机拍照或者相册里的大图片限制。
缺点:属于异步调用,必须先上传图片,处理不及时,最多可能30分钟才返回结果,需要提供回调URL来接受处理结果,不健康的图片无法实时处理,容易造成风险。
实测检测时间大概在3~5秒之间,小程序使用高峰期可去到10秒+,对用户体验比较在意的开发者可能难以接受。
方案3:百度云内容安全检测API
优点:速度快,可同步检测
缺点:价格稍贵,需要检测色情+暴恐+政治,勾选了多少项就需要单项检测×3的费用,token过期机制不完善,默认的token有效时间较长,不适宜前端直接调用(也就是说,他们的API压根没有考虑会在客户端直接使用的)
如果可以解决token在前端的过期机制问题,可以直接在前端调用,无需增加服务的图片流量负担(上传流量很占带宽)。否则接口很容易被盗刷(血的教训)。
方案4:七牛云内容安全检测API
优点:识别效果尚好,价格比百度稍微便宜一点
缺点:需要把图片上传到七牛云的空间,再调用他们的接口,费用相对而言还是较贵
需要接入上传图片拿到图片链接,然后在后台调用检测API,服务器流量压力不大,只需要把图片链接传给七牛云即可。收费模式和百度云无异。
综合成本考虑,方案1是比较合适的选择,虽然腾讯已经放弃维护,但目前看来,还是好用的。