程序獲取用戶信息步驟
- 點擊參考微信文檔中的授權
- 首先程序先向用戶申請訪問哪些權限
- 用戶做出選擇后返回給程序
- 程序攜帶權限訪問服務器
- 如果用戶允許則返回信息
- 如果用戶為允許則不返回
自定義函數getUserRun
為獲取用戶的微信運動數據 頁面加載調用此函數函數中執行下面操作
1. 獲取用戶的權限設置
- wx.getSetting(object,object)獲取當前用戶的設置,返回值就是小程序向客戶請求過的權限(包括允許和未允許的)
- 函數中的success是成功后執行 輸出內容中的authSetting為空對象 說明當前用戶沒有對改程序開放任何權限
2.判斷用戶是否對微信運動步數進行授權
- 當用戶對微信運動步數授權后 setting中的成功返回值authSetting中的對象應該包括scope.werun
- 可以根據返回值authSetting對象中是否包含scope.werun而進行判斷
2.1 如果用戶還沒有授權
- 通過調用wx.authorize(object,object)立刻彈窗詢問是否授權小程序使用某項功能或獲取用戶的某些數據,如果用戶已經授權則不會彈起
- scope的參數值就是要申請的權限
- 用戶允許后執行sucess函數
- 調用自定義方法獲取用戶微信運動數據
- 用戶不允許則執行fail函數
- 在函數中 通過wx.showModal彈出提示框 title為標題 content為內容 用戶確認后提示框消失
2.2 如果用戶已經授權
- 調用自定義方法(此方法就是獲取用戶微信運動的數據)
3. 自定義函數讀取用戶微信運動數據
//定義函數讀取用戶微信運動數據getWeRunData() {wx.getWeRunData({success(res) {console.log(res)}})},
-
通過調用wx.getWeRunData(Object object)接口獲取用戶過去三十天微信運動步數。需要先調用 wx.login 接口。步數信息會在用戶主動進入小程序時更新。
-
但是返回的數據出于安全是加密的 通過如下方式進行解密
-
重新編譯自定義函數代碼
//定義函數讀取用戶微信運動數據getWeRunData() {wx.getWeRunData({success(res) {//由于數據是進行加密的所以我們通過條用云函數的方式進行解密wx.cloud.callFunction({name: 'deswerundata',data: {weRunData: wx.cloud.CloudID(res.cloudID) // 這個 CloudID 值到云函數端會被替換}}).then(res=>{console.log(res)})}})},
- 其中name的值就是我們要調用的云函數名稱
- data就是我們要傳遞的數據
- .then就是請求完云函數后我們要得到返回的數據
-
創建云函數deswerundata
-
編輯此云函數中的index.js中的代碼為
// 云函數入口文件 const cloud = require('wx-server-sdk')cloud.init()// 云函數入口函數 exports.main = async (event, context) => {let weRunData = event.weRunDatareturn {weRunData} }
-
將云函數重新上傳 重新編譯即可