1. 程式人生 > 其它 >基於雲開發的答題活動小程式v2.0-實現微信授權登入功能

基於雲開發的答題活動小程式v2.0-實現微信授權登入功能

專案技術棧

微信原生小程式+雲開發。為什麼選擇微信原生小程式進行開發呢?因為能夠直接應用它的雲開發能力吖。

我這裡主要使用了雲開發能力中的小程式端SDK,說白了就是在javascript中就能直接操作資料庫。

本篇前言

基於雲開發的答題活動小程式v2.0的原始碼地址,以及手把手教你搭建答題活動小程式v1.0系列文章目錄,均在【基於雲開發的答題活動小程式v2.0,終於趕在11月最後一天完成了】這篇文章的底部。

想必大家有個疑問,在上一篇,【基於雲開發的答題活動小程式v2.0-首頁設計與實現】這篇文章中,為什麼我沒有把首頁的index.js檔案的程式碼貼出來。

相對於長篇累牘的文章,我更傾向於精簡的短文。而這裡主要是為了單獨拎出來,簡單地聊聊,為什麼要實現微信授權登入?如何去實現這個功能?

微信授權登入

為什麼要

如果大家看了我前面的文章或者拿到原始碼執行起來,估計應該看到,有這麼一個場景。舉個栗子,在排行榜頁的時候,其中就需要顯示參與答題者的微信頭像和暱稱。

如何實現

通過上面簡單的需求分析,然後這裡看看技術可行性吧。通過查閱技術文件,可以知道,官方提供了一個開發介面用以獲取使用者資訊,wx.getUserProfile(Object object)。

它是這樣講的:“頁面產生點選事件(例如 button 上 bindtap 的回撥中)後才可呼叫,每次請求都會彈出授權視窗,使用者同意後返回 userInfo”。

我是這樣寫的程式碼:

.wxml

<view bindtap="login">
      <button class='cu-btn bg-red round block lg margin-top'> 獲取頭像暱稱 </button>
</view>

當然你也可以這樣寫,多動手實踐實踐與多嘗試不同的方式。畢竟正確答案不止一個。

<view>
      <button class='cu-btn bg-red round block lg margin-top' bindtap="login"> 獲取頭像暱稱 </button>
</view>

.js

//微信授權登入
  login() {
    wx.getUserProfile({
      desc: '用於完善會員資料',
      success: (res) => {
        this.setData({
          userInfo: res.userInfo
        })
      }
    })
  }

執行效果

完整程式碼

首頁index.js檔案完整程式碼,如下所示:

const app = getApp()

Page({
  data: {
    userInfo: {},
    hasUserInfo: false
  },


  onLoad() {

  },

  //跳轉答題頁
  goToTest() {
    wx.navigateTo({
      url: '../test/test'
    })
  },
  //跳轉活動規則頁
  goToDetails() {
    wx.navigateTo({
      url: '../details/details'
    })
  },
  //跳轉答題記錄頁
  goToHistory() {
    wx.navigateTo({
      url: '../history/history'
    })
  },
  //跳轉排行榜頁
  goToRank() {
    wx.navigateTo({
      url: '../rank/rank'
    })
  },

  //微信授權登入
  login() {
    wx.getUserProfile({
      desc: '用於完善會員資料',
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
        app.globalData.userInfo = res.userInfo
        app.globalData.hasUserInfo = true
      }
    })
  },
  //轉發分享
  onShareAppMessage(res) {
    return {
      title: '@你,快來參與消防安全知識答題活動吧~'
    }
  },
})

本篇小結

在微信小程式開發中,實現微信授權登入功能,獲取微信頭像和暱稱的應用場景還是比較常見的。而我這裡主要是用於答題活動中的成績排行榜資料統計與展示,對於運營公眾號或者小程式來說還是比較重要的一環。