最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

本次項(xiàng)目做到一個(gè)點(diǎn)贊功能,即分享出去一個(gè)頁(yè)面給微信好友,微信好友點(diǎn)開(kāi)并點(diǎn)贊,需要將點(diǎn)贊用戶(hù)的微信昵稱(chēng),微信頭像以及微信openid,微信unionid(這個(gè)需要關(guān)注公眾號(hào)才會(huì)有該字段)傳給后端,記錄點(diǎn)贊人的相關(guān)信息

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

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

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

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

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

⚠️

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

4、分享頁(yè)面的實(shí)際鏈接:

⚠️ 當(dāng)前頁(yè)面的鏈接需要 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: 公眾號(hào)的appid
// REDIRECT_URI:當(dāng)前頁(yè)面的鏈接,需要編碼
// scope: snsapi_base / snsapi_userinfo
// 其他值均不用改動(dòng)

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

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

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

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

6、需要獲取用戶(hù)信息,且二次分享的問(wèn)題

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

代碼如下

// created 周期
if(this.$route.query.from) { // 判斷鏈接中是否有from參數(shù),下面的studentId,activityId項(xiàng)目需要
 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
}
 // 處理微信用戶(hù)信息
 handleWechatMsg(code) {
  // 調(diào)取 獲取微信用戶(hù)信息的接口(后端參考微信官方文檔進(jìn)行封裝)  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
    // 本地存儲(chǔ)微信用戶(hù)信息,防止頁(yè)面被刷新,code失效
    window.localStorage.setItem('wechatMesssage', _data)
   } else if (res.data.code == 400) { // 400-code失效,400是后端返回,具體看后端返回哪個(gè)碼
    let msgs = window.localStorage.getItem('wechatMesssage')
    this.wechatMsg = JSON.parse(msgs)    
   } else {
    this.$Message.message(res.data.message);
   }

  })
 },

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

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

  1. 當(dāng)前頁(yè)面的域名,需要在公眾號(hào)后臺(tái)配置添加(詳見(jiàn)官網(wǎng))
  2. 如果頁(yè)面存在#,可能會(huì)出問(wèn)題,可以使用nginx進(jìn)行配置

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

相關(guān)文章

  • vue 實(shí)現(xiàn) tomato timer(蕃茄鐘)實(shí)例講解

    vue 實(shí)現(xiàn) tomato timer(蕃茄鐘)實(shí)例講解

    下面小編就為大家?guī)?lái)一篇vue 實(shí)現(xiàn) tomato timer(蕃茄鐘)實(shí)例講解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • until封裝watch常用邏輯簡(jiǎn)化代碼寫(xiě)法

    until封裝watch常用邏輯簡(jiǎn)化代碼寫(xiě)法

    這篇文章主要介紹了until將watch最常用的邏輯進(jìn)行封裝簡(jiǎn)化代碼寫(xiě)法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue.js滾動(dòng)條插件vue-scroll的基本用法

    vue.js滾動(dòng)條插件vue-scroll的基本用法

    在移動(dòng)端或PC,頁(yè)面的部分內(nèi)容常常需要我們讓其在頁(yè)面滾動(dòng),這篇文章主要給大家介紹了關(guān)于vue.js滾動(dòng)條插件vue-scroll的基本用法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Vue3 將組件手動(dòng)渲染到指定元素中的方法實(shí)現(xiàn)

    Vue3 將組件手動(dòng)渲染到指定元素中的方法實(shí)現(xiàn)

    本文主要介紹了Vue3 將組件手動(dòng)渲染到指定元素中的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 如何把vuejs打包出來(lái)的文件整合到springboot里

    如何把vuejs打包出來(lái)的文件整合到springboot里

    這篇文章主要介紹了如何把vuejs打包出來(lái)的文件整合到springboot里,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • vue表單驗(yàn)證之禁止input輸入框輸入空格

    vue表單驗(yàn)證之禁止input輸入框輸入空格

    這篇文章主要介紹了vue表單驗(yàn)證之禁止input輸入框輸入空格,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Element?UI?Upload?組件上傳圖片可刪除、預(yù)覽功能

    Element?UI?Upload?組件上傳圖片可刪除、預(yù)覽功能

    這篇文章主要介紹了Element?UI?Upload?組件?上傳圖片可刪除、預(yù)覽,設(shè)置只允許上傳單張?/?多張圖片的操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 關(guān)于vue屬性使用和不使用冒號(hào)的區(qū)別說(shuō)明

    關(guān)于vue屬性使用和不使用冒號(hào)的區(qū)別說(shuō)明

    這篇文章主要介紹了關(guān)于vue屬性使用和不使用冒號(hào)的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • LogicFlow插件使用前準(zhǔn)備詳解

    LogicFlow插件使用前準(zhǔn)備詳解

    這篇文章主要為大家介紹了LogicFlow插件使用前準(zhǔn)備詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • vue在標(biāo)簽中如何使用(data-XXX)自定義屬性并獲取

    vue在標(biāo)簽中如何使用(data-XXX)自定義屬性并獲取

    這篇文章主要介紹了vue在標(biāo)簽中如何使用(data-XXX)自定義屬性并獲取,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評(píng)論

嘉兴市| 沅陵县| 滕州市| 抚顺市| 十堰市| 聂拉木县| 九台市| 宿松县| 大宁县| 镶黄旗| 正蓝旗| 秀山| 库伦旗| 子长县| 阿坝| 全州县| 通山县| 普兰店市| 江永县| 铁岭市| 绥阳县| 津市市| 司法| 乐至县| 阳朔县| 阜阳市| 永宁县| 舞阳县| 北京市| 石首市| 金坛市| 济阳县| 融水| 县级市| 钦州市| 容城县| 武陟县| 岚皋县| 华安县| 宜君县| 呼伦贝尔市|