一逗抑、微信小程序添加request-promise
1.打開github官網(wǎng)
2.搜索request-promise
安裝唇兑、使用說明
3.打開微信小程序開發(fā)程序
4.新建一個(gè)云函數(shù)
5.在終端打開
6.輸入命令:
npm install --save request
npm install --save request-promise
7.編寫云函數(shù)程序
二操禀、使用貝殼物聯(lián)API
-
在貝殼物聯(lián)用戶中心→個(gè)人信息→開發(fā)者出點(diǎn)擊成為開發(fā)者
2.使用云函數(shù)獲取授權(quán)碼
//云函數(shù)
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等數(shù)據(jù)不加引號(hào)
body: {
},
json: true
};
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
return rp(options)
.then(function (res) {
console.log(res)
return res
})
.catch(function (err) {
console.log(err)
});
}
//js
//獲取授權(quán)碼
onlick: function () {
wx.cloud.callFunction({
// 要調(diào)用的云函數(shù)名稱
name: 'ivm',
// 傳遞給云函數(shù)的event參數(shù)
data: {}
}).then(res => {
console.log(res)
this.setData({
access_token: res.result.access_token
})
}).catch(err => {
console.log(err)
})
},
2.獲取用戶信息
// 云函數(shù)
//獲取用戶信息
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({
// 要調(diào)用的云函數(shù)名稱
name: 'ivm',
// 傳遞給云函數(shù)的event參數(shù)
data: {
type: 'userinfo',
access_token: access_token
}
}).then(res => {
console.log('獲取用戶信息成功')
//json對(duì)象轉(zhuǎn)成json字符串(同普通js中相同)JSON.stringify()
//以下為json字符串轉(zhuǎn)為json對(duì)象方法
var str1 = unescape(res.result.replace(/\\/g, '%'))//解決Unicode編碼問題
var user_obj = JSON.parse(str1.trim())//解決Unexpected token in JSON at position 0問題
console.log("用戶信息數(shù)據(jù)對(duì)象",user_obj)
}).catch(err => {
console.log('獲取用戶信息失敗');
console.log(err);
})