華為運動健康服務(HUAWEI Health Kit)提供原子化資料開放,在獲取使用者對資料的授權後,應用可通過介面訪問運動健康資料,對使用者資料進行增、刪、改、查等操作,為使用者提供運動健康類資料服務。這篇文章中我們總結了開發者提出的授權相關的典型問題並給出了參考解決方法,希望為其他遇到類似問題的開發者提供參考。
1. Android App不能喚起Health Kit授權,HealthKitAuthResult result 授權失敗statusCode: 6003的原因是什麼?
“6003”是HMS Core SDK框架的報錯。當證書指紋校驗-簽名證書指紋錯誤時,將返回6003錯誤碼。此時,需要按照以下2個步驟檢查apk中配置的簽名證書是否正確。
步驟1.檢查申請相關服務時是否配置了正確的證書指紋。開啟應用的APK,將其中“META-INF”資料夾解壓出來,得到其中的“CERT.RSA”檔案,通過keytool -printcert -file META-INF/CERT.RSA命令列印簽名證書資訊。
步驟2.登入AppGallery Connect,單擊“我的專案”,選擇需要操作專案,進入專案頁面後選擇應用,然後在“專案設定 > 常規”中檢查“SHA256證書指紋”配置的資訊是否與步驟1的指紋一致。
更多HMS Core SDK框架錯誤碼可參考官網文件
2. 呼叫介面時返回50005錯誤碼“鑑權未知錯誤”,是什麼原因?
呼叫端側介面返回50005錯誤碼,請做如下檢查:
(1)授權操作前,請確保你在聯盟卡片中申請讀/寫的運動健康資料的稽核已經通過。
(2)應用在拉起授權頁面時,展示給使用者可選擇授權的資料需要包含在聯盟卡片稽核通過的運動健康資料中。
(3)應用可操作的使用者資料為聯盟卡片稽核通過的資料型別讀/寫許可權與使用者在授權頁面勾選的資料型別讀/寫許可權的交集。
(4)HMS會對Scope許可權資訊進行快取,快取時長為24小時。如果出現此錯誤,可能是快取原因導致。
在手機“應用管理”裡清除“HMS Core”的快取和資料。
在“華為帳號 > 隱私中心 > 控制對您帳號的訪問”裡取消對App的授權,然後重新開啟App登入華為帳號並申請授權。
3. 獲取token報20022(invalid direct_uri),一般是什麼原因導致的?
錯誤碼20022表示redirect_uri的格式校驗沒有通過。建議做如下的檢查:
(1)使用redirect_uri獲取token時,填寫的redirect_uri需要與您在申請帳號服務-設定帳號服務資訊時,填寫在應用的“產品服務>帳號>回撥地址”中的填寫的一致。
(2)redirect_uri需要經過URLEncode編碼。
注意:使用者在授權頁面同意授權後,OAuth授權服務將響應值授權碼Code,通過回撥地址redirect_uri返回給應用,此時返回的是URLEncode編碼後的授權碼,可直接使用。使用Postman 請求時,Body用x-www-form-urlencoded時,code需要先解碼再使用,即URLDecode編碼;body用raw格式時,code可直接用,不需要解碼。
認證鑑權示例參考文件
更多華為帳號REST錯誤碼資訊參考文件
4. 我的應用需要獲取使用者最近一次跑步時的運動時間、熱量消耗、配速、平均心率以及步數資料,在Health Kit申請時是否需要申請運動健康資料中的心率資料許可權?還是隻需申請運動記錄資料許可權?在程式碼部分的Scopes又該申請哪些許可權?
如果你的應用需要讀取運動健康App上運動記錄卡片中的資料,首先需要了解運動記錄資料開放由兩部分許可權組成:
(1)運動記錄概要資料許可權
聯盟卡片申請的許可權名稱:運動記錄資料 > 使用者運動記錄資料
讀取運動記錄的Scope許可權:
Android SDK接入:Scopes.HEALTHKIT_ACTIVITY_RECORD_READ
REST接入:https://www.huawei.com/health...(Scope許可權URL)
以跑步運動記錄為例,當你的應用需要獲取使用者跑步運動記錄中的距離統計、卡路里統計、步數統計等取樣統計資料型別時,由於取樣統計資料型別屬於運動記錄概要資料中的一部分,只需要申請使用者運動記錄資料讀許可權。
(2)運動記錄關聯的原子取樣資料許可權
需要每個原子取樣資料型別對應的OAuth許可權。
以跑步運動記錄為例,如果你的應用需要獲取跑步運動記錄關聯的GPS詳情、步頻詳情、海拔的詳情等資料,那麼還需要每個原子取樣資料型別對應的OAuth許可權。
原子取樣資料型別對應聯盟卡片申請的許可權名稱、Scope許可權請參見聯盟文件的資料型別章節:Android SDK接入 REST接入
瞭解更多詳情>>
獲取開發指導文件
關注我們,第一時間瞭解 HMS Core 最新技術資訊~