云调用 - 生成小程序码
一、创建云函数并配置相应的权限

//配置相关的调用权限
{
  "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"
    ]
  }
}
 
 
 
 
