從企業微信登錄小程序的坑


一. 基本需求

小程序需要有一個企業微信的入口,就是讓小程序綁定在企業微信的工作台。這樣我們不僅可以在企業微信中使用小程序,也可以使用企業微信的信息。所以我們要做的就是文檔中說的

二. 步驟

安裝示意圖,步驟如下(隨便也會說坑)

  1. 先上線一個普通版本的小程序(申請審核的那種),為什么,因為有個步驟用到了關聯小程序的企業微信應用的screct, 而你去做關聯操作,肯定要一個上線的小程序。 不然需要提交資料給客服,讓他臨時幫你申請權限,我感覺先上線個普通版本比較好。

  2. 先判斷是不是企業微信環境wx.getSystemInfoSync,返回的res.environment === 'wxwork'表示是在企業微信環境。

  3. 所以1,2步驟都是前提工作,剩下的就是wx.qy.login獲取code, 后端通過corpid和關聯小程序的企業微信應用的screct(企業微信應用后台管理可以看到)得到access_token,在利用access_token得到session+userid, 最后后端一般會返回一個有時效性的token(關聯了session+userid的信息),每次前端請求都攜帶就好了。

三. 代碼

const res = wx.getSystemInfoSync()
// 如果是企業微信環境
if(res.environment === 'wxwork') {
  wx.qy.login({
    success (res) {
         if (res.code) {
          //發起網絡請求
          wx.request({
            url: 'xx', // 后端的地址
            data: {
              code: res.code
            },
            success (res) {
              // 這裏就是得到token的位置了,然后緩存token
             console.log(res.data)
            }
          })
        } else {
          console.log('登錄失敗!' + res.errMsg)
        }   
    } 
  })
}

四. 調試

這里需要先綁定到對應的企業微信,使用企業微信入口調試,才能觸發到以上代碼,目前開發者工具不支持wx.qy.login。

五. 題外話

1. wx.getUserInfo

微信小程序回收wx.getUserInfo接口可獲取用戶個人信息能力。
2021年4月28日24時后發布的新版本小程序,開發者調用wx.getUserInfo<button open-type="getUserInfo"/>將不再彈出彈窗,直接返回匿名的用戶個人信息,獲取加密后的openID、unionID數據的能力不做調整。
而新增的wx.getUserProfile需要用戶點擊按鈕觸發,直接調用是不會彈出彈窗的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM