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