欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue實現(xiàn)微信獲取用戶信息的方法

 更新時間:2019年03月21日 10:46:09   作者:桃小妖  
這篇文章主要介紹了vue實現(xiàn)微信獲取用戶信息的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

本次項目做到一個點贊功能,即分享出去一個頁面給微信好友,微信好友點開并點贊,需要將點贊用戶的微信昵稱,微信頭像以及微信openid,微信unionid(這個需要關(guān)注公眾號才會有該字段)傳給后端,記錄點贊人的相關(guān)信息

微信網(wǎng)頁授權(quán)

1、微信公眾號網(wǎng)頁授權(quán)配置,詳見官網(wǎng)

2、關(guān)于網(wǎng)頁授權(quán)的兩種scope的區(qū)別說明 (詳細見官網(wǎng))

-scope=snsapi_base 獲取微信用戶openid,獲取后直接跳轉(zhuǎn)業(yè)務(wù)頁面,不需要用戶操作

-scope=snsapi_userinfo 獲取微信用戶詳細信息(昵稱,頭像等),需要用戶手動點擊授權(quán),當(dāng)點擊允許時,會跳轉(zhuǎn)業(yè)務(wù)頁面(類似于關(guān)閉彈窗),點擊拒絕時會推出頁面,授權(quán)如圖:

⚠️

3、用戶管理類接口中的“獲取用戶基本信息接口”,是在用戶和公眾號產(chǎn)生消息交互或關(guān)注后事件推送后,才能根據(jù)用戶OpenID來獲取用戶基本信息。這個接口,包括其他微信接口,都是需要該用戶(即openid)關(guān)注了公眾號后,才能調(diào)用成功的。

4、分享頁面的實際鏈接:

⚠️ 當(dāng)前頁面的鏈接需要 encodeURIComponent( url ) 編碼

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
// APPID: 公眾號的appid
// REDIRECT_URI:當(dāng)前頁面的鏈接,需要編碼
// scope: snsapi_base / snsapi_userinfo
// 其他值均不用改動

5、點擊允許后跳轉(zhuǎn)的鏈接是 REDIRECT_URI + code=CODE&state=STATE。

⚠️ 此處的code可以用來調(diào)取接口獲取微信用戶的相關(guān)信息

⚠️ 每次用戶授權(quán)帶上的code將不一樣,code只能使用一次,5分鐘未被使用自動過期。

-官方說法code只能被使用一次,在H5頁面中,如果有跳轉(zhuǎn)的情況,再返回當(dāng)前頁面,微信會判斷是否已經(jīng)授權(quán),如果授權(quán)過,則code返回的還是上一次的code,而你如果用code調(diào)取用戶信息(code已失效)會報 invalid code, hints: [ req_id: GGJbIz4ce-oGYwya ],所以在第一次獲取用戶信息的時候就可以將該用戶信息存儲在本地

6、需要獲取用戶信息,且二次分享的問題

雖然當(dāng)前頁面沒有問題,但是當(dāng)前微信用戶使用微信進行二次分享,則微信會分享當(dāng)前頁面的鏈接(不包含https://open.weixin.qq.com),新用戶點擊則不會進行授權(quán),但是微信的二次分享會在當(dāng)前鏈接加上 &from= ,可以在vue created的生命周期里進行參數(shù)獲取并判斷,如果有from參數(shù),則跳轉(zhuǎn)https://open.weixin.qq.com/co... 鏈接,讓用戶授權(quán)
⚠️ 二次分享樣式顯示問題可以查看我的另一篇文章vue + 微信二次分享/自定義分享

代碼如下

// created 周期
if(this.$route.query.from) { // 判斷鏈接中是否有from參數(shù),下面的studentId,activityId項目需要
 let _nowUrl = window.location.href.split('?')[0] + `?resource=1&studentId=${this.$route.query.studentId}&activityId=${this.$route.query.activityId}`
 let _shareUrl = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appId}&redirect_uri=${encodeURIComponent(_nowUrl)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
 window.location.href = _shareUrl
 return
}
 // 處理微信用戶信息
 handleWechatMsg(code) {
  // 調(diào)取 獲取微信用戶信息的接口(后端參考微信官方文檔進行封裝)  code--參數(shù)
  api.getWechatInfo(code).then((res)=>{
   if(res.data.code == 200) {
    // 返回的是json字符串
    let _data = res.data.content
    let _personMsg = JSON.parse(_data)
    this.wechatMsg = _personMsg
    // 本地存儲微信用戶信息,防止頁面被刷新,code失效
    window.localStorage.setItem('wechatMesssage', _data)
   } else if (res.data.code == 400) { // 400-code失效,400是后端返回,具體看后端返回哪個碼
    let msgs = window.localStorage.getItem('wechatMesssage')
    this.wechatMsg = JSON.parse(msgs)    
   } else {
    this.$Message.message(res.data.message);
   }

  })
 },

如果需要獲取微信unionid,則需要引導(dǎo)用戶關(guān)注公眾號,可以在返回的用戶信息中判斷是否含有unionid,如果沒有,可以展示微信公眾號的二維碼,供用戶識別關(guān)注

⚠️--------------------

  1. 當(dāng)前頁面的域名,需要在公眾號后臺配置添加(詳見官網(wǎng))
  2. 如果頁面存在#,可能會出問題,可以使用nginx進行配置

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue 實現(xiàn)列表動態(tài)添加和刪除的兩種方法小結(jié)

    Vue 實現(xiàn)列表動態(tài)添加和刪除的兩種方法小結(jié)

    今天小編就為大家分享一篇Vue 實現(xiàn)列表動態(tài)添加和刪除的兩種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • Vue3+Vite實現(xiàn)項目搭建步驟

    Vue3+Vite實現(xiàn)項目搭建步驟

    這篇文章主要介紹了Vue3+Vite實現(xiàn)項目搭建步驟,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue3中按需引入ECharts詳細步驟(一看就會)

    Vue3中按需引入ECharts詳細步驟(一看就會)

    新項目采用Vue3作為前端項目框架,避免不了要使用echarts,這篇文章主要給大家介紹了關(guān)于Vue3中按需引入ECharts的相關(guān)資料,需要的朋友可以參考下
    2023-09-09
  • vue實現(xiàn)橫向時間軸

    vue實現(xiàn)橫向時間軸

    這篇文章主要為大家詳細介紹了vue實現(xiàn)橫向時間軸,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • vue 無法覆蓋vant的UI組件的樣式問題

    vue 無法覆蓋vant的UI組件的樣式問題

    這篇文章主要介紹了vue 無法覆蓋vant的UI組件的樣式問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue3中Composition的API用法詳解

    Vue3中Composition的API用法詳解

    這篇文章主要為大家詳細介紹了Vue3中Composition的一些常見API的用法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-06-06
  • vue 封裝面包屑組件教程

    vue 封裝面包屑組件教程

    這篇文章主要介紹了vue 封裝面包屑組件教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • vue單個元素綁定多個事件問題(例如點擊綁定多個事件方法)

    vue單個元素綁定多個事件問題(例如點擊綁定多個事件方法)

    這篇文章主要介紹了vue單個元素綁定多個事件問題(例如點擊綁定多個事件方法),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Vue3?setup?的作用實例詳解

    Vue3?setup?的作用實例詳解

    setup?用來寫組合式?API,從生命周期的角度,相當(dāng)于取代了?beforeCreate(),這篇文章主要介紹了Vue3?setup?的作用,需要的朋友可以參考下
    2022-12-12
  • Jenkins自動化部署Vue項目的方法實現(xiàn)

    Jenkins自動化部署Vue項目的方法實現(xiàn)

    本文主要介紹了Jenkins自動化部署Vue項目的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論