云调用 - 生成小程序码

it2022-05-05  89

官方文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/qr-code/wxacode.getUnlimited.html

一、创建云函数并配置相应的权限

//配置相关的调用权限 { "permissions": { "openapi": [ "wxacode.getUnlimited" ] } }

二、编写云函数

//index.js // 云调用~生成小程序二维码 const cloud = require('wx-server-sdk') cloud.init() exports.main = async(event, context) => { var scene = event.scene; var page = event.page; var width = event.width; try { // 1、通过云调用生成二维码 const result = await cloud.openapi.wxacode.getUnlimited({ scene: scene, page: page, width: width }) console.log(result) // 2、上传图片到云存储 const upload = await cloud.uploadFile({ cloudPath: scene + '.jpg', fileContent: result.buffer, }) console.log(upload) // 3、返回图片地址 var fileID = upload.fileID; console.log("fileId=" + fileID); const fileList = [fileID] const imgList = await cloud.getTempFileURL({ fileList: fileList, }) return imgList.fileList } catch (err) { console.log(err) return err } }

三、调用云函数

onLoad(){ console.log('onload'); // 云调用~生成小程序二维码 wx.cloud.init({ env: 'gorpeln', traceUser: true }) var path = 'pages/index/index' var width = '430'; wx.cloud.callFunction({ name: 'posters', data: { page: path, width: width, scene: 'poseterId=1', }, success: res => { console.log(res) wx.showToast({ title: '生成成功!', }) }, fail: error => { console.log(JSON.stringify(error)) wx.showToast({ title: '生成失败!', }) } }); }

运行结果:

四、常见问题

VM86:1 [云函数] [login] 调用失败 Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail cloud function service error code -504002, error message Function not found: [login]; at cloud.callFunction api;

云端运行环境为 Node.js,需要先在本地安装 Node.js 和 npm才能顺利测试。同时还要在云函数目录下安装 wx-server-sdk 依赖。

1、安装node.js和npm

node.js 下载地址 https://nodejs.org/en/

安装node.js时会同时安装npm 测试安装是否成功 安装完成后:

输入node -v 来测试 node.js 输入npm -v 来测试 npm

2、安装wx-server-sdk依赖。

在cmd中首先通过cd 云函数路径的命令,定位到云函数目录,这里要定位到某个具体的云函数文件夹内,如login函数则要定位到login文件夹内。然后再执行命令

npm install --save wx-server-sdk

安装wx-server-sdk依赖。对于每一个你创建云函数都要安装该依赖。

errMsg: “system error: error code: -604101”

config.json (如果config.json文件不存在,需要手动创建)中配置 wxacode.getUnlimited API 的权限。

{ "permissions": { "openapi": [ "wxacode.getUnlimited" ] } }

最新回复(0)