欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

微信小程序獲取用戶信息方案介紹(附可用DEMO) - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >

微信小程序獲取用戶信息方案介紹(附可用DEMO)

發(fā)表時(shí)間:2021-1-5

發(fā)布人:葵宇科技

瀏覽次數(shù):81

背景

小程序一個(gè)比較重要的能力就是獲取用戶信息,也就是使用 wx.getUserInfo 接口。我們發(fā)現(xiàn)幾乎所有的小程序都會(huì)調(diào)用這個(gè)接口。雖然我們?cè)谠O(shè)計(jì)文檔上有提出最好的設(shè)計(jì)是在真正要用戶信息的情況下才去獲取用戶信息,不過很多開發(fā)者并沒有按照我們的期望去做,導(dǎo)致用戶在使用的時(shí)候有很多困擾。

歸結(jié)起來(lái)有幾點(diǎn):

  • 開發(fā)者在首頁(yè)直接調(diào)用 wx.getUserInfo 進(jìn)行授權(quán),彈框有會(huì)使得一部分用戶放棄小程序的使用。

  • 開發(fā)者沒有處理用戶拒絕彈框的情況,有部分小程序強(qiáng)制要求用戶授權(quán)頭像昵稱等信息才能繼續(xù)使用小程序。

  • 用戶沒有很好的方式重新授權(quán),雖然在前幾個(gè)版本我們?cè)黾恿?/span>設(shè)置頁(yè)面可以讓用戶選擇重新授權(quán),但是操作還是不夠便捷。

  • 開發(fā)者希望進(jìn)到首頁(yè)就獲取到用戶的unionId,以便和之前已經(jīng)關(guān)注了公眾號(hào)的用戶畫像關(guān)聯(lián)起來(lái)。

  • 開發(fā)者默認(rèn)將 wx.loginwx.getUserInfo 綁定使用,這個(gè)是由于我們一開始的設(shè)計(jì)缺陷和實(shí)例代碼導(dǎo)致: getUserInfo必須通過wx.login 在后臺(tái)生成session_key 后才能調(diào)用。

為了解決以上幾點(diǎn),我們更新了三個(gè)能力:

  1. 使用組件來(lái)獲取用戶信息,用戶拒絕授權(quán)后也可以重新彈窗再次授權(quán)

  2. 若用戶滿足一定條件(下文有詳細(xì)介紹),則可以用wx.login 獲取到的code直接換到unionId

  3. wx.getUserInfo 不依賴 wx.login 就能調(diào)用得到數(shù)據(jù)。

獲取用戶信息組件介紹

組件變化:

  • open-type 屬性增加 getUserInfo :用戶點(diǎn)擊時(shí)候會(huì)觸發(fā) bindgetuserinfo 事件。

  • 新增事件 bindgetuserinfo :當(dāng) open-typegetUserInfo 時(shí),用戶點(diǎn)擊會(huì)觸發(fā)。可以從事件返回參數(shù)的detail字段中獲取到和wx.getUserInfo 返回參數(shù)相同的數(shù)據(jù)。

示例:

<button open-type="getUserInfo" bindgetuserinfo="userInfoHandler"> Click me button>

wx.getUserInfo 不同之處在于:

  • API wx.getUserInfo 只會(huì)彈一次框,用戶拒絕授權(quán)之后,再次調(diào)用將不會(huì)彈框

  • 組件 由于是用戶主動(dòng)觸發(fā),不受彈框次數(shù)限制,只要用戶沒有授權(quán),都會(huì)再次彈框


直接獲取unionId

考慮很多場(chǎng)景下,業(yè)務(wù)方申請(qǐng)userinfo授權(quán)主要為了獲取unionid。我們鼓勵(lì)開發(fā)者在不騷擾用戶的情況下合理獲得unionid,而僅在必要時(shí)才向用戶彈窗申請(qǐng)使用昵稱頭像。為此,凡使用“獲取用戶信息組件”獲取用戶昵稱頭像的小程序,在滿足以下全部條件時(shí),將可以靜默獲得unionid。

  1. 在微信開放平臺(tái)下存在同主體的App、公眾號(hào)、小程序。

  2. 用戶關(guān)注了某個(gè)相同主體公眾號(hào),或曾經(jīng)在某個(gè)相同主體App、公眾號(hào)上進(jìn)行過微信登錄授權(quán)。


getUserInfo 和 login

很多開發(fā)者會(huì)把login和getUserInfo捆綁調(diào)用當(dāng)成登錄使用,其實(shí)login已經(jīng)可以完成登錄,可以建立賬號(hào)體系了,getUserInfo只是獲取額外的用戶信息。

在login獲取到code,然后發(fā)送到開發(fā)者后端,開發(fā)者后端再通過接口去微信后端換取到openid和sessionKey(并且現(xiàn)在會(huì)將unionid也一并返回)之后,然后把3rd_session返回給前端,就已經(jīng)完成登錄行為。而login行為是靜默,不必授權(quán)的,不會(huì)對(duì)用戶造成騷擾。

getUserInfo只是為了提供更優(yōu)質(zhì)的服務(wù)而存在,比如展示頭像昵稱,判斷性別,通過unionId和其他公眾號(hào)上已有的用戶畫像結(jié)合起來(lái)提供歷史數(shù)據(jù)。所以不必在剛剛進(jìn)入小程序的時(shí)候就強(qiáng)制要求授權(quán)。

推薦使用方法

  1. 調(diào)用wx.login 獲取code,然后從微信后端換取到sessionKey,用于解密getUserInfo返回的敏感數(shù)據(jù)。

  2. 使用wx.getSetting 獲取用戶的授權(quán)情況

    1. 如果用戶已經(jīng)授權(quán),直接調(diào)用 API wx.getUserInfo 獲取用戶最新的信息

    2. 用戶未授權(quán),在界面中顯示一個(gè)按鈕提示用戶登入,當(dāng)用戶點(diǎn)擊并授權(quán)后就獲取到用戶的最新信息。

  3. 獲取到用戶數(shù)據(jù)后可以進(jìn)行展示或者發(fā)送給自己的后端。

文檔中的quickStart已經(jīng)更新

特別注意

為了給用戶提供更好的小程序環(huán)境,我們約定在一段時(shí)間后(具體時(shí)間會(huì)做通知),若還出現(xiàn)以下情況(包括但不限于),將無(wú)法通過審核

  1. 初次打開小程序就彈框授權(quán)用戶信息

  2. 未處理用戶拒絕授權(quán)的情況

  3. 強(qiáng)制要求用戶授權(quán)

已經(jīng)上線的小程序不會(huì)受到影響。
可用demo

wx-getUserInfo以及getOpenID.rar

相關(guān)案例查看更多