openid作爲小程序用戶的唯一標示,就相當於用戶在微信裏的身份證一樣,我們做小程序開發時,獲取用戶的openid是很重要的。我們之前獲取用戶的openid,如下圖官方文檔說明,是通過該wx.login先獲取臨時憑證,然後再用臨時憑證去換取用戶的openid,這樣做無可厚非,但是小程序出了雲開發之後,再用這種方法獲取用戶openid就顯得有些麻煩了,因爲通過雲開發獲取用戶openid特別方便,並且可靠。
下面就來帶領大家藉助雲開發愉快的獲取用戶openid。
使用雲開發之前需要簡單瞭解下雲開發,下面鏈接是官方學習文檔。https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html
一,開啓雲開發
開啓雲開發只需要在開發者工具裏點擊上面紅色框裏的雲開發按鈕即可,創建成功後如下圖
二,創建雲函數
-
1,創建雲函數所需文件夾
-
2,右鍵點擊functions,點擊同步雲函數列表
-
3,右鍵點擊functions,點擊新建node.js雲函數
-
4,創建名爲getOpenid的雲函數
-
5,編寫獲取openid的代碼
// 雲函數入口文件
const cloud = require('wx-server-sdk')
cloud.init()
//獲取用戶的openid
exports.main = async(event, context) => {
return event.userInfo; //返回用戶信息
}
-
6,右鍵點擊getOpenid,上傳並部署雲函數。
三,使用getOpenid雲函數獲取用戶openid
- 1,在app.js裏初始化雲開發
//app.js
App({
onLaunch: function() {
//雲開發初始化
wx.cloud.init({
env: 'prod-8aa9a5',
traceUser: true
})
}
})
- 2,在首頁使用雲函數獲取openid
//home.js
Page({
data: {
openid: '',
},
onLoad: function () {
this.getOpenid();
},
// 獲取用戶openid
getOpenid() {
let that = this;
wx.cloud.callFunction({
name: 'getOpenid',
complete: res => {
console.log('雲函數獲取到的openid: ', res.result.openId)
var openid = res.result.openId;
that.setData({
openid: openid
})
}
})
}
})
獲取結果如下
到此我們就輕鬆的藉助雲開發雲函數獲取到了用戶的openid了