实战笔记:uniapp开发小程序云函数 您所在的位置:网站首页 uniapp爬虫 实战笔记:uniapp开发小程序云函数

实战笔记:uniapp开发小程序云函数

#实战笔记:uniapp开发小程序云函数 | 来源: 网络整理| 查看: 265

在使用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-plugin

5、开始编译,编译完成后,前往微信开发者工具

上传并部署,此时就可以测试云函数了

调用示例

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 实验室设备网 版权所有