微信小程序云函数绕过https和备案

  • Post author:
  • Post category:小程序




微信小程序云函数


demo地址

在微信小程序中,只要牵扯到请求Api的问题,微信必要这些域名备案,https等等。

但是有的国外的Api你又不能去备案,那么如何操作呢?



使用云开发中转

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Of0MmaJS-1592922565323)(http://myblogoss.aimezhao.online/20200519203207.png)]



实现步骤

  1. 创建用于中转的云函数
  2. 编写请求代码
  3. 上传并部署云函数
  4. 小程序端请求云函数



具体过程



1:创建云开发小程序

如果微信小程序要使用云开发,那么必须要有

AppId

,后端服务选择

小程序·云开发



2:云开发小程序的结构


  • cloudfunctions

    :云开发的后台

  • miniprogram

    :小程序端

先把新创建项目的

cloudfunctions

文件夹的所有文件删除



3:创建云函数并安装依赖

  • 我们新建一个云函数,将其命名为

    top

  • 安装依赖,在云函数内,我们通过

    got

    来请求未备案的

    Api

    。选中

    top

    云函数,在终端打开,执行

    npm install got --save

  • 进入

    top

    云函数,在

    index.js

    中引入

    got

    const got = require('got')
    
  • 在云函数入口处的

    await got(url)

    中的

    url

    换成你需要请求的未备案的Api

    这里使用的

    wallhaven.cc

    的请求

    Api



4:上传云函数

尽量选择

云端安装依赖



5:小程序端选择默认环境

打开

miniprogram

小程序的

app.js

文件,将

env

设置为你的云环境


env

的环境在这里查看



6:小程序端请求云函数

  1. 新建一个Page:

    top

    ,写一个按钮,添加点击事件



  2. top.js

    中回调云函数

    wx.cloud.callFunction({
        name: 'top'  //这里是云函数的名称
    }).then(res => {
        console.log(res); //看是否能打印
    })
    



常见报错

在报错之前,一定要确认云函数上传成功

  1. 缺失模块问题:

    no module

    等等。解决办法:在终端打开,下载缺失的模块

  2. 反人类错误:

    errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID 39fd6cb8-99d1-11ea-9174-525400f89277

    。解决办法:重新上传云函数(

    多上传几遍

    这里很邪门,再确认云函数环境指定正确的情况下(

    app.js

    里面

    env

    指定正确)。

    就是多上传几遍或者重新创建一个项目迁移过去

  3. 总之,云函数需要注重的地方:

    1. 模块安装成功
    2. 确保云函数上传成功
    3. 云环境指定正确
    4. 确保返回数据的格式正确



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