疑難排解

本指南說明如何排解使用 Google 健康資料 API 時的常見問題。

4xx 用戶端錯誤

如果用戶端應用程式程式碼有問題,系統會傳回 4xx 狀態碼。查看回應主體元素,進一步瞭解問題。

400 錯誤的要求

訊息 說明 建議
要求含有無效引數。 不支援資料類型 ID「{value}」。 確認端點支援所參照的資料類型。
收到無效的 JSON 酬載。八進位/十六進位數字不是有效的 JSON 值。 dailyRollUp 端點不支援以 MM 或 DD 分別表示的月份和日期值。個位數不得以 0 開頭。
資源名稱中的專案編號無效 使用要求網址中的 Google Cloud 雲端專案 ID 刪除或更新訂閱者,而非專案編號。這適用於使用 projects.subscribers 端點的 Webhook 訂閱項目。 請在要求網址中使用 Google Cloud 專案編號,而非專案 ID。

未授權 401

訊息 說明 建議
要求的驗證憑證無效。Expected OAuth 2 access token, login cookie or other valid authentication credential. INVALID_AUTHENTICATOR:權杖已過期 您的存取權杖已過期。使用更新權杖取得新的存取權杖和更新權杖,或請使用者重新同意應用程式存取權。

403 Forbidden

訊息 說明 建議
呼叫者沒有權限 使用 Google Cloud 專案 ID 建立或列出訂閱者時,請在要求網址中加入專案 ID,而非專案編號。這適用於使用 projects.subscribers 端點的 Webhook 訂閱項目。 請在要求網址中使用 Google Cloud 專案編號,而非專案 ID。
呼叫者沒有權限。 無法從 GaiaMint 鑄造 UberMint。

使用者已完成授權流程,但端點呼叫失敗。如果舊版 Fitbit 帳戶同意應用程式存取資料,而非 Google 帳戶,就可能發生這種情況。如要解決這項錯誤,請按照下列步驟操作:

  1. 透過 Fitbit 設定登出 Fitbit 行動應用程式。
  2. 按下「使用 Google 繼續」或「使用 Google 帳戶登入」按鈕,登入 Fitbit 行動應用程式。如果收到「無法使用這個 Google 帳戶存取 Fitbit」訊息,表示你的電子郵件地址仍註冊為舊版 Fitbit 帳戶。請按照這篇說明文章的步驟遷移帳戶。

404 找不到網頁

訊息 說明 建議
在此伺服器上找不到所要的網址 /v4/users/me/dataTypes/{dataType}/dataPoints 可能原因:
  • 確認使用的動詞是否正確
  • 檢查端點語法是否有錯字

擷取 Fitbit 使用者 ID

如要協助排解使用者問題,您可能需要驗證使用者登入 Fitbit 行動應用程式的 Google 帳戶。

如何找出 Fitbit 使用者 ID:

  1. 開啟 Fitbit 行動應用程式。
  2. 按下右下角的「個人中心」圖示。
  3. 按一下頂端含有使用者名稱和加入日期的方塊中的「編輯個人資料」連結。
  4. 瀏覽至頁面底部。在「你的帳戶」部分,指派給 ID 的值就是 Fitbit 使用者 ID。(例如:CV5TKH)

協助使用者排解應用程式的 OAuth2 連線問題時,您可能需要請他們取消連結帳戶與應用程式,然後再次完成授權流程。

如要取消 Google 帳戶與應用程式的連結,請按照下列步驟操作:

  1. 開啟 Fitbit 行動應用程式。
  2. 按一下右上角的 Fitbit 使用者個人資料圖示。
  3. 按下「管理你的 Google 帳戶」
  4. 選取「資料和隱私權」動態磚。
  5. 向下捲動至「您在應用程式和服務中的資料」部分。 在「應用程式和服務」下方,選取「第三方應用程式和服務」
  6. 在已連結的應用程式清單中尋找應用程式名稱,然後請使用者選取該應用程式。
  7. 按下「刪除你與『<應用程式名稱>』之間的所有連結」
  8. 請使用者按下確認鍵,撤銷對您應用程式的同意聲明。

撤銷程序完成後,系統會將使用者帶回「第三方應用程式和服務」頁面。使用者可能需要重新整理頁面,才能看到應用程式名稱從清單中移除。

排解裝置同步延遲問題

排解使用者資料遺失或延遲的問題時,檢查使用者的配對裝置型號和上次同步處理日期,有助於解決問題。

裝置型號 (例如 Fitbit 智慧手環或智慧手錶型號) 和上次同步日期有助於排解問題,以及在同步延遲後擷取歷史資料。

舉例來說,如果發現資料傳送出現非預期的間隔或延遲:

  1. 確認您查詢的使用者 ID 與登入行動應用程式的 Fitbit 帳戶使用者 ID 相符。如要在行動應用程式中取得使用者 ID,請參閱「擷取 Fitbit 使用者 ID」。如要從存取權杖取得使用者 ID,請呼叫 getIdentity 端點
  2. 查看上次同步時間,判斷使用者裝置上次與 Google Health 行動應用程式同步的時間。
  3. 如果裝置最近未同步,表示延遲可能是因為裝置處於離線狀態,或未與行動應用程式同步,而非 API 問題。
  4. 使用者開啟行動應用程式並同步處理裝置資料後,您就能擷取自上次同步處理時間以來的歷史資料。

如要擷取使用者的配對裝置資訊,請呼叫 users.pairedDevices.list 端點。這會傳回裝置清單,其中包含:

  • deviceVersion:裝置的產品名稱或型號 (例如「Charge 6」)。
  • lastSyncTime:上次成功同步的時間戳記。