このガイドでは、Google Health API の使用時に発生する一般的な問題のトラブルシューティング方法について説明します。
4xx クライアント エラー
クライアント アプリのコードに問題がある場合は、4xx ステータス コードが返されます。問題の詳細については、レスポンス本文の要素をご覧ください。
400 不正なリクエスト
| メッセージ | 説明 | 推奨事項 |
|---|---|---|
| リクエストに無効な引数が含まれています。 | データ型 ID {value} はサポートされていません。 | 参照されているデータ型がエンドポイントでサポートされていることを確認します。 |
| 無効な JSON ペイロードを受信しました。8 進数/16 進数は有効な JSON 値ではありません。 | dailyRollUp エンドポイントでは、月と日が MM または DD で表される値はサポートされていません。 1 桁の数字の先頭に 0(ゼロ)を付けることはできません。 |
|
| リソース名に無効なプロジェクト番号が含まれています | プロジェクト番号ではなく Google Cloud プロジェクト ID をリクエスト URL で使用して、サブスクライバーを削除または更新する場合。これは、projects.subscribers エンドポイントを使用するウェブフック サブスクリプションに適用されます。 |
リクエスト URL にはプロジェクト ID ではなく Google Cloud プロジェクト番号を使用します。 |
401 Unauthorized(未承認)
| メッセージ | 説明 | 推奨事項 |
|---|---|---|
| リクエストに無効な認証情報があります。OAuth 2 アクセス トークン、ログイン Cookie などの有効な認証情報が必要です。 | INVALID_AUTHENTICATOR: トークンの有効期限が切れています | アクセス トークンの有効期限が切れています。更新トークンを使用して新しいアクセス トークンと更新トークンを取得するか、ユーザーがアプリケーションに再度同意する必要があります。 |
403 Forbidden(アクセス拒否)
| メッセージ | 説明 | 推奨事項 |
|---|---|---|
| 呼び出し元に権限がありません | プロジェクト番号ではなく Google Cloud プロジェクト ID をリクエスト URL で使用して、サブスクライバーを作成または一覧表示する場合。これは、projects.subscribers エンドポイントを使用するウェブフック サブスクリプションに適用されます。 |
リクエスト URL にはプロジェクト ID ではなく Google Cloud プロジェクト番号を使用します。 |
| 呼び出し元に権限がありません。 | GaiaMint から UberMint を作成できませんでした。 | ユーザーは承認フローを完了できましたが、エンドポイントの呼び出しに失敗しました。これは、従来の Fitbit アカウントが Google アカウントではなくアプリに同意した場合に発生する可能性があります。このエラーを解決する方法は以下のとおりです。
|
404 見つかりません
| メッセージ | 説明 | 推奨事項 |
|---|---|---|
リクエストされた URL /v4/users/me/dataTypes/{dataType}/dataPoints はこのサーバーに見つかりませんでした。 |
考えられる原因:
|
Fitbit ユーザー ID を取得する
ユーザーの問題のトラブルシューティングを行うには、Fitbit モバイルアプリにログインしているユーザーの Google アカウントを確認する必要がある場合があります。
Fitbit ユーザー ID を確認する手順は次のとおりです。
- Fitbit モバイルアプリを開きます。
- 右下の [ユーザー] アイコンを押します。
- ユーザー名と登録日を含む上部のタイルにある [プロフィールを編集] リンクを押します。
- ページの一番下までスクロールします。[**アカウント**] セクションで、ID に割り当てられている値が Fitbit ユーザー ID です。(例: CV5TKH)
アプリへの同意を取り消す
ユーザーがアプリへの OAuth2 接続のトラブルシューティングを行う際に、アプリからアカウントのリンクを解除して、承認フローを再度完了する必要がある場合があります。
Google アカウントとアプリのリンクを解除する手順は次のとおりです。
- Fitbit モバイルアプリを開きます。
- 右上の Fitbit ユーザー プロフィール アイコンを押します。
- [Google アカウントを管理] を押します。
- [データとプライバシー] タイルを選択します。
- [**ご利用のアプリ、サービスのデータ**] セクションまでスクロールします。 [アプリとサービス] で [サードパーティ製のアプリとサービス] を選択します。
- 接続されているアプリのリストでアプリ名を探し、選択してもらいます。
- [<アプリ名> との接続をすべて削除] を押します。
- 確認を押して、アプリへの同意を取り消してもらいます。
取り消しプロセスが完了すると、[サードパーティ製のアプリとサービス] ページのリストに戻ります。リストからアプリ名が削除されるまで、ページを更新する必要がある場合があります。
デバイスの同期遅延のトラブルシューティング
ユーザーデータの欠落や遅延に関する問題をデバッグする場合は、ユーザーのペア設定したデバイスのモデルと最終同期日を確認すると便利です。
モデル情報(Fitbit トラッカーやスマートウォッチのモデルなど)と最終同期日は、トラブルシューティングに役立ちます。また、同期の遅延後に履歴データを取得する際にも役立ちます。
たとえば、データの配信に予期しないギャップや遅延が発生した場合は、次のことを確認します。
- クエリを実行しているユーザー ID が、モバイルアプリにログインしている Fitbit
アカウントのユーザー ID と一致していることを確認します。モバイル
アプリでユーザー ID を取得するには、Fitbit ユーザー ID を取得するをご覧ください。
アクセス トークンからユーザー ID を取得するには、
getIdentityエンドポイントを呼び出します。 - 最終同期時刻を確認して、ユーザーのデバイスが Google Health モバイルアプリと最後に同期された日時を確認します。
- デバイスが最近同期されていない場合は、API の問題ではなく、デバイスがオフラインになっているか、モバイル アプリケーションと同期されていないことが原因である可能性があります。
- ユーザーがモバイル アプリケーションを開いてデバイスを同期すると、最終同期時刻以降の期間の履歴データを取得できます。
ユーザーのペア設定したデバイス情報を取得するには、
users.pairedDevices.list
エンドポイントを呼び出します。これにより、次の情報を含むデバイスのリストが返されます。
deviceVersion: デバイスの製品名またはモデル(「Charge 6」など)。lastSyncTime: 最後に正常に同期されたタイムスタンプ。