這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助

微信小程式獲取用戶資訊的幾種方式
以下三種方式都無法獲取到用戶的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)
})
https://www.niwoxuexi.com/blog/wechat/article/1938
如果對您有所幫助,歡迎您點個關注,我會定時更新技術檔案,大家一起討論學習,一起進步,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/539474.html
標籤:其他
