記錄--微信小程式獲取使用者資訊的最新方法記錄
阿新 • • 發佈:2022-12-07
這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助
微信小程式獲取使用者資訊的幾種方式
以下三種方式都無法獲取到使用者的openID
1. 開放元件獲取使用者資訊<open-data></open-data>該功能已無效
- 該元件的type屬性根據不同的屬性值可以展示使用者不同的資訊
- 該方式不需要授權,因為該方式值能獲取到當前登入使用者自己的基礎資訊
- 但是該方法獲取的使用者資訊只能展示,不可以通過js方法獲取到
- 元件功能調整 開發者在未獲取使用者明示同意的情況下通過 元件 在小程式中展示使用者個人資訊,使用者容易誤以為自己的個人資訊在未授權的情況下,被小程式獲取。平臺計劃從2022年2月21日24時起回收通過展示個人資訊的能力,若小程式需收集使用者暱稱頭像等資訊,可以通過 頭像暱稱填寫功能 功能進行收集。具體回收方式為:
頭像展示 灰色頭像
使用者暱稱展示“微信使用者”
使用者性別、地區、語言展示為為空(“”)
<open-data type="userAvatarUrl">使用者頭像</open-data> <open-data type="userNickName">使用者暱稱</open-data> <open-data type="userCountry">使用者國家</open-data> <open-data type="userCity">使用者城市</open-data>
2. wx.getUserInfo({})方法
- 該api只有已經授權過的使用者才會被獲取到資訊,沒有授權過的話呼叫是沒用用的
wx.getUserInfo({ success: (res)=>{ console.log(res) } })
3. 配置open-type屬性
- 該方法可以彈出授權框,授權後可使用上面第二種方法獲取使用者資訊
使用bindgetuserinfo屬性繫結事件,該事件出發後有一個event引數,
<button open-type="getUserInfo" bindgetuserinfo="onGetuserinfo"> 獲取使用者資訊 </button> onGetuserinfo(event){ // console.log(event) },
想要獲取到使用者的openID有兩種方法
1. 傳統的小程式開發
1. 呼叫wx.login方法成功後獲取到code 2. 使用wx.request發起網路請求將code傳遞給後端伺服器 3. 後端會使用code換取到openid和session_key後再返回給前端
onLoad: function(options) { wx.login({ success: function(res) { if (res.code) { //如果呼叫wx.login後獲取到code //發起網路請求 wx.request({ url: '後端介面', data: { code: res.code }, success: function(res) { const self = this if (邏輯成功) { //獲取到使用者憑證 儲存 3rd_session var json = JSON.parse(res.data.Data) wx.setStorage({ key: "third_Session", data: json.third_Session }) getUserInfo() } else { } }, fail: function(res) { } }) } }, fail: function(res) { } }) }
2. 小程式雲開發
建立微信小程式雲開發專案後,雲函式中會自帶一個login雲函式,該雲函式中已經有獲取使用者openid的方法,呼叫該雲函式後會返回當前小程式的appid和openid
wx.cloud.callFunction({ name: 'login' }).then((res)=>{ console.log(res) })