小程序接口學習—開發接口

1、登陸html

https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html小程序

一、步驟api

(1)調用接口wx.login(OBJECT)獲取登陸憑證(code)。服務器

(2)再將code傳遞給第三方服務器,第三方服務器請求微信服務器https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code微信

(3)成功微信服務器返回openid(用戶惟一標識),session_key(會話密鑰),unionid(用戶在開放平臺的惟一標識符),失敗微信服務器{ "errcode": 40029,"errmsg": "invalid code"}網絡

(4)登錄狀態驗證:這裏的session是第三方服務器生產的。session

wx.checkSession({
  success: function(){
    //session 未過時,而且在本生命週期一直有效
  },
  fail: function(){
    //登陸態過時
    wx.login() //從新登陸
    ....
  }
})

2、提早向用戶發起受權請求app

// 能夠經過 wx.getSetting 先查詢一下用戶是否受權了 "scope.record" 這個 scope
wx.getSetting
({success(res) {
        if (!res.authSetting['scope.record']) {
            wx.authorize({
                scope: 'scope.record',
                success() {
                    // 用戶已經贊成小程序使用錄音功能,後續調用 wx.startRecord 接口不會彈窗詢問
                    wx.startRecord()
                }
            })
        }
    }
})

3、獲取用戶信息this

wx.getSetting({
      success: res => {
        if (res.authSetting['scope.userInfo']) {
          // 已經受權,能夠直接調用 getUserInfo 獲取頭像暱稱,不會彈框
          wx.getUserInfo({
            success: res => {
              // 能夠將 res 發送給後臺解碼出 unionId
              this.globalData.userInfo = res.userInfo;
              console.log(res.userInfo);
              // 因爲 getUserInfo 是網絡請求,可能會在 Page.onLoad 以後才返回
              // 因此此處加入 callback 以防止這種狀況
              if (this.userInfoReadyCallback) {
                this.userInfoReadyCallback(res)
              }
            }
          })
        }
      }
    })
相關文章
相關標籤/搜索