一、微信小程序添加request-promise
1.打开github官网
2.搜索request-promise
3.打开微信小程序开发程序
4.新建一个云函数
5.在终端打开
6.输入命令:
npm install --save request
npm install --save request-promise
7.编写云函数程序
二、使用贝壳物联API
-
在贝壳物联用户中心→个人信息→开发者出点击成为开发者
2.使用云函数获取授权码
//云函数
const cloud = require('wx-server-sdk')
cloud.init()
var rp = require('request-promise');
var options = {
method: 'POST',
uri: 'https://www.bigiot.net/oauth/token?client_id=***&client_secret=***&username=***&password=***&grant_type=password',//id、password等数据不加引号
body: {
},
json: true
};
// 云函数入口函数
exports.main = async (event, context) => {
return rp(options)
.then(function (res) {
console.log(res)
return res
})
.catch(function (err) {
console.log(err)
});
}
//js
//获取授权码
onlick: function () {
wx.cloud.callFunction({
// 要调用的云函数名称
name: 'ivm',
// 传递给云函数的event参数
data: {}
}).then(res => {
console.log(res)
this.setData({
access_token: res.result.access_token
})
}).catch(err => {
console.log(err)
})
},
2.获取用户信息
// 云函数
//获取用户信息
if (event.type == 'userinfo') {
var optionsuserinfo = {
method: 'GET',
uri: 'https://www.bigiot.net/oauth/userinfo?access_token=' + event.access_token,
body: {},
json: true
}
return rp(optionsuserinfo)
.then(function (res) {
console.log(res)
return res
})
.catch(function (err) {
console.log(err)
});
}
// 获取用户信息
wx.cloud.callFunction({
// 要调用的云函数名称
name: 'ivm',
// 传递给云函数的event参数
data: {
type: 'userinfo',
access_token: access_token
}
}).then(res => {
console.log('获取用户信息成功')
//json对象转成json字符串(同普通js中相同)JSON.stringify()
//以下为json字符串转为json对象方法
var str1 = unescape(res.result.replace(/\\/g, '%'))//解决Unicode编码问题
var user_obj = JSON.parse(str1.trim())//解决Unexpected token in JSON at position 0问题
console.log("用户信息数据对象",user_obj)
}).catch(err => {
console.log('获取用户信息失败');
console.log(err);
})