華為運動健康服務(HUAWEI Health Kit)提供原子化數據開放,在獲取用戶對數據的授權後,應用可通過介面訪問運動健康數據,對用戶數據進行增、刪、改、查等操作,為用戶提供運動健康類數據服務。這篇文章中我們總結了開發者提出的授權相關的典型問題並給出了參考解決方法,希望為其他遇到類似問題的開發者 ...
華為運動健康服務(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/healthkit/activityrecord.read(Scope許可權URL)
以跑步運動記錄為例,當你的應用需要獲取用戶跑步運動記錄中的距離統計、卡路里統計、步數統計等採樣統計數據類型時,由於採樣統計數據類型屬於運動記錄概要數據中的一部分,只需要申請用戶運動記錄數據讀許可權。
(2)運動記錄關聯的原子採樣數據許可權
需要每個原子採樣數據類型對應的OAuth許可權。
以跑步運動記錄為例,如果你的應用需要獲取跑步運動記錄關聯的GPS詳情、步頻詳情、海拔的詳情等數據,那麼還需要每個原子採樣數據類型對應的OAuth許可權。
原子採樣數據類型對應聯盟卡片申請的許可權名稱、Scope許可權請參見聯盟文檔的數據類型章節:Android SDK接入 REST接入
瞭解更多詳情>>
獲取開髮指導文檔
關註我們,第一時間瞭解 HMS Core 最新技術資訊~