華為運動健康服務(HUAWEI Health Kit)允許三方生態應用在獲取用戶授權後,通過REST API介面訪問資料庫,讀取華為和生態伙伴開放的運動健康數據或寫入數據到華為運動健康服務,為用戶提供更加個性化的健康改善服務。如運動類App在獲取授權碼後可以讀取華為用戶的心率、步數等運動數據,最終給 ...
華為運動健康服務(HUAWEI Health Kit)允許三方生態應用在獲取用戶授權後,通過REST API介面訪問資料庫,讀取華為和生態伙伴開放的運動健康數據或寫入數據到華為運動健康服務,為用戶提供更加個性化的健康改善服務。如運動類App在獲取授權碼後可以讀取華為用戶的心率、步數等運動數據,最終給用戶提供健康建議。
1. 申請帳號服務和申請運動健康服務
Health Kit需要用戶登錄和授權,需要先申請帳號服務,可以在申請帳號服務的同時創建應用,也可以為已經創建的應用開通帳號服務。創建成功後,可以在帳號服務列表裡查看已創建的應用,點擊條目能查看到的詳細信息如下圖所示。其中的APP ID,APP SECRET和回調地址後面會用到。
2. 獲取授權碼code
相比於其他Kit的REST API,Health Kit使用前需要獲得授權碼登錄華為帳號後獲取到授權碼,多了一個獲取授權碼Code的步驟。
開髮指南對授權碼登錄做了詳細介紹,此處共有client_id,response_type,redirect_uri和scope共四個必傳欄位,其中client_id, 是在創建應用成功後自動生成的APP ID。redirect_uri 是申請帳號服務步驟中填寫的“回調地址”。
在用戶輸入華為帳號登錄授權之後,網頁瀏覽器會跳轉到redirect_uri對應的鏈接,並且把所需要的授權碼code作為參數追加在鏈接後面。
看一下官網給出的示例請求,在電腦或手機瀏覽器中打開上述鏈接,都會顯示如下的華為帳號登錄和授權頁面。
登錄授權成功之後瀏覽器會跳轉如下鏈接
其中介面需要用到的授權碼code就是鏈接中請求載荷參數code的字元串值。
需要註意的是:這邊控制臺中的code是urlencode編碼前的字元串,瀏覽器中的code是urlencode編碼後的字元串。
在後續步驟主要使用的是urlencode編碼前的code的值。(瀏覽器中的code需要進行urlencode解碼再使用)
接下來需要通過上面獲取到的授權碼code,獲取access_token和refresh_token。
由於使用限制,接下來的步驟不能再使用官網demo的參數進行測試了,需要創建自己的應用。然後傳入自己項目相關的參數,重覆上述步驟獲取授權碼code。
創建的應用的相關參數,都可以在“應用服務”-“帳號”下麵找到,如下是創建的一個測試應用的信息頁面。
1.使用授權碼Code獲取AT
client_id,redirect_url需要和獲取授權碼code使用的一致。
code參數是urlencode編碼前的code的值。
client_secret參數是上面應用信息里的APP SECRET。
2 .Refresh Token獲取access_token
3.使用獲取到的access_token測試數據相關API
由於我們上面登錄授權時,申請了獲取身高體重的許可權,所以在此測試一下獲取身高數據的介面。
參照“查詢最新採樣數據”的文檔鏈接,按照文檔中postman請求測試結果如下:
Head裡面的參數:Authorization 欄位值為: Bearer+‘空格’+ access_token值,形如:Bearer {access_token} ,x-client-id 的值需要和上方使用的client_id一致。
請求參數“dataTypeName”:“com.huawei.instantaneous.body_weight”在數據類型-體重-原子採樣數據類型可以找到:
https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References/latest-sampleset-0000001078273166
如果要同時查詢多個數據,請求url示例如下:
https://health-api.cloud.huawei.com/healthkit/v1/sampleSets/latestSamplePoint?dataType=com.huawei.instantaneous.body_weight&dataType=com.huawei.instantaneous.blood_glucose
鏈接後拼接多個dataType參數即可。
瞭解更多詳情>>