专栏首页移动大前端云调用02-生成小程序码

云调用02-生成小程序码

官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/openapi.html

支持接口:https://developers.weixin.qq.com/miniprogram/dev/api-backend/index.html

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

image.png

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

必须配置相关的调用权限,否则无法正常调用

二、编写云函数

1、生成二维码

2、上传到云存储

3、获取临时地址(有效期最多一天)

// 云调用~生成小程序二维码
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
  }
}

三、调用云函数

注意:页面地址不能带参数,否则报错

    var path = 'pages/add_grade/add_grade' 
    var width = '430';

    wx.cloud.callFunction({
      name: 'generateEWM',
      data: {
        page: path,
        width: width,
        scene: objectId,
      },
      success: res => {
        console.log(res)

        wx.showToast({
          title: '生成成功!',
        })

      },
      fail: error => {
        console.log(JSON.stringify(error))
        wx.showToast({
          title: '生成失败!',
        })
      }
    });

返回JSON

{
    "errMsg": "cloud.callFunction:ok",
    "result": [{
        "fileID": "cloud://release-3ea42b.7265-release-3ea42b-1258370407/9c4488c75cb7d2930121b6e46c3cefdb.jpg",
        "status": 0,
        "errMsg": "ok",
        "tempFileURL": "https://7265-release-3ea42b-1258370407.tcb.qcloud.la/9c4488c75cb7d2930121b6e46c3cefdb.jpg"
    }],
    "requestID": "c4a20658-6181-11e9-818b-525400235f2a"
}

image.png

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 云调用01-发送模板消息

    官方文档:https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/op...

    专注APP开发
  • JS示例30-列表排序sort

    专注APP开发
  • JS示例22-通过className查找元素

    专注APP开发
  • JDK1.9-继承

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    cwl_java
  • 对 Phantomjs / CasperJS 进行远程调试

    CasperJS运行在PhantomJS之上,其实也是启用PhantomJS的远程调试功能

    大道七哥
  • 利用宝塔简易反向代理教程 适用于谷歌、ss站点

    Youngxj
  • 种子下载工具cloud-torrent搭建和使用

    最近在下几个种子,原本是放在电脑上下载的,但是你知道的,我的电脑不可能24小时在线的,而且作为一个有强迫症的人,你能忍受你玩电脑的时候后台总有一个下载工具在运行...

    bboysoul
  • proc/net/dev实时网速统计实例【转】

    转自:https://blog.csdn.net/dosthing/article/details/80384541

    用户3033338
  • SpringBoot基础(三、整合Mybatis、Redis)

    我们以前使用SSM的时候,使用Mybatis是需要各种配置文件、实体类、Dao层的各种映射关系,虽然可以使用注解减少这些配置信息,但还是有好多东西需要配置,自从...

    营琪
  • Java中的super 和 this

    qubianzhong

扫码关注云+社区

领取腾讯云代金券