实战笔记:uniapp开发小程序云函数 | 您所在的位置:网站首页 › uniapp爬虫 › 实战笔记:uniapp开发小程序云函数 |
在使用uniapp结合云开发实战过程中踩了不少坑,接下来准备用一个系列来记录这些爬坑过程,方便团队成员学习和日后查找。社区里各位大佬如果有更好的解决方案,希望多多指教,我们是一个追求进步的团队。 项目中我们经常会希望用户上传图片和填写一些文本信息,为了防止部分应用内出现违法违规内容。我们需要对这些内容进行安全检测。微信也很贴心的为我们提供相应的接口。但在uniapp中无法直接调用这些服务,需要稍作改动 1、在项目根目录创建wxcloudfunctions文件夹(可以是任意名字) 2、定义云函数路径 (打开项目根目录下manifest.json) 3、在wxcloudfunctions创建security 新建config.json,index.js, package.json三个文件 config.json配置相应接口权限 { "permissions": { "openapi": [ "security.msgSecCheck", "security.imgSecCheck" ] } }package.json { "name": "security", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "wx-server-sdk": "~2.3.2" } }index,js const cloud = require('wx-server-sdk') cloud.init() exports.main = async (event, context) => { const wxContext = cloud.getWXContext() try { let result = {}; switch (event.action) { case 'msgSecCheck': //文本校验 result = await cloud.openapi.security.msgSecCheck({ content: event.content }); break; case 'imgSecCheck': //图片校验 result = await cloud.openapi.security.imgSecCheck({ media: { contentType: 'image/jpg', value: Buffer.from(event.content) } }); break; default: result = { code: 403, msg: '非法访问' } break; } if (result && result.errCode.toString() === '87014') { return { code: 300, msg: '内容含有违法违规内容', data: result } } else { return { code: 200, msg: 'ok', data: result } } } catch (err) { let logs = { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } return { code: 400, msg: '调用security接口异常', log: logs, data: err } } }4、使用npm安装copy-webpack-plugin模块 npm install -save copy-webpack-plugin5、开始编译,编译完成后,前往微信开发者工具 上传并部署,此时就可以测试云函数了 调用示例 let contents = JSON.stringify(content); wx.cloud.init() wx.cloud.callFunction({ name: 'security', data: { "action": 'msgSecCheck', "content": contents } }).then(res => { if (res.result.code == 300) { uni.showModal({ title: "温馨提示", content: "你所输入的内容可能含有违法违规内容,不支持进行下一步操作" }) } else { //写入数据库 } })接口文档 图片检测 https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.imgSecCheck.html 【注意:单个 appId 调用上限为 2000 次/分钟,200,000 次/天(图片大小限制:1M)】 文本检测 https://https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/sec-check/security.msgSecCheck.html |
CopyRight 2018-2019 实验室设备网 版权所有 |