受欢迎的博客标签

微信小程序云开发(8)--小程序云函数-云函数请求第三方服务器数据的源代码案例

Published

1.云函数:豆瓣api调用

使用request-promise
// 云函数入口文件
const cloud = require('wx-server-sdk')

// 默认配置
cloud.init();
// 或者传入自定义配置
cloud.init({
  env: "some-env-id"
});

//come from https://www.v2ex.com/t/482895
var rp = require('request-promise')
// 云函数:豆瓣api调用
exports.main = (event, context) => {
  var res = rp('https://api.douban.com/v2/book/isbn/' + event.isbn).then(html => {
    return html;
  }).catch(err => {
    console.log(err);
  })
  return res
}

2.请求彩票种类的云函数

 

 

 

 

3.请求第三方服务器的云函数代码

使用request

// 云函数入口文件--生成小程序二维码
//https://github.com/pampa0629/EntryOutdoor/blob/0e061573e0b0b0fd9fdae3ceb469c94276af51d7/cloud-functions/createQrCode/index.js
const cloud = require('wx-server-sdk')
cloud.init()
const request = require('request');
const db = cloud.database()
const dbOutdoors = db.collection('Outdoors')

// 云函数入口函数
exports.main = async (event, context) => {
  // event.outdoorid, access_token
  console.log(event)
  var url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + event.access_token
  console.log(url)
  var data = {
    scene: event.outdoorid,
    width: "280px",
    page: "pages/EntryOutdoor/EntryOutdoor",
  }
  var options = {
    url: url,
    method: "POST",
    body: JSON.stringify(data),
    encoding: null // 最坑的一句代码,没有得到的二进制image内容就是错乱的
    //responseType: 'arraybuffer', 小程序端要这么写
  };
  console.log(options)

  const apireq = options => new Promise((resolve, reject) => request(options, (err, response, body) => {
    if (err) {
      reject(err);
    } else {
      resolve(body);
    }
  }));

  // 得到 二维码数据流 
  let image = await apireq(options)
  var cloudPath = "Outdoors/" + event.outdoorid + "/QrCode.jpg"

  // 存到云存储上
  let cloudFile = await cloud.uploadFile({
    cloudPath: cloudPath,
    fileContent: image,
  });

  // 写到数据库中
  await dbOutdoors.doc(event.outdoorid).update({
    data: {
      QcCode: cloudFile.fileID
    },
  })

  // 返回云存储链接
  return cloudFile.fileID;
}

3.选择云函数的环境

右击cloudfunctions文件夹,点击更多设置

 

点击 设置,选择云函数 根目录和云函数运行环境云函数上传后,图标会从目录图片会变成一朵云

 

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/wx-server-sdk.html