如何獲取華為運動健康服務授權碼並呼叫Rest API訪問資料?

HMSCore發表於2022-06-06

華為運動健康服務(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/...

如果要同時查詢多個資料,請求url示例如下:
https://health-api.cloud.huaw...
連結後拼接多個dataType引數即可。

瞭解更多詳情>>

訪問華為運動健康服務聯盟官網

訪問華為運動健康場景解決方案

獲取華為運動健康服務開發指導文件

相關文章