14

Nexus 5 に Google Fit アプリをインストールして以来、歩数と歩行時間を記録しています。この情報を Google Fitness REST API ( docs )経由で取得したいのですが、REST API からそのデータを取得する方法がわかりません。

OAuth 2.0 プレイグラウンドを使用して dataSource を正常に一覧表示しましたが、試した例のいずれもフィットネス データをまったく返しませんでした。( Android SDK )の DataReadRequest に似たものを使用する必要があるように感じますが、Android アプリを構築しているのではなく、Google Fit アプリによって既に保存されているフィットネス データにアクセスしたいだけです。

Google Fit アプリによって収集されたデータを取得することさえ可能ですか? その場合、REST API を使用して歩数データを読み取って集計するにはどうすればよいですか?

4

3 に答える 3

7

結局、答えはドキュメントにあることがわかりました。リクエストの形式は次のとおりです。

GET https://www.googleapis.com/fitness/v1/users/{userId}/dataSources/{dataSourceId}/datasets/{datasetId}

サポートされている唯一の{userId}値はme(with authentication) です。

の可能な値は、別の request{dataSourceId}を実行することで利用できます。

私が見逃していた{datasetId}のは、これは実際には ID ではなく、実際に関心のあるタイムスパンを定義する場所でした。その変数の形式は{startTime}-{endTime}、エポックからのナノ秒単位の時間です。

于 2014-11-27T19:54:59.050 に答える
7

Google phpクライアントを介してこれを機能させることができましたが、リクエストの開始時刻と終了時刻にGET余分な0が追加されていることに気付きました.9つの事実です。

GET上記の回答で述べたのと同じリクエスト形式を使用します。

https://www.googleapis.com/fitness/v1/users/{userId}/dataSources/{dataSourceId}/datasets/{datasetId}

これがUNIXタイムスタンプの例です(phpのtime()関数はこれを使用しています)

https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:com.google.android.gms:estimated_steps/datasets/1470475368-1471080168

これは私が得る応答です:

{
  "minStartTimeNs": "1470475368", 
  "maxEndTimeNs": "1471080168", 
  "dataSourceId":
  "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps
}

ただし、開始時刻と終了時刻に 9 を追加0してGETリクエストに入力し、リクエストを次のように形作る場合:

https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:com.google.android.gms:estimated_steps/datasets/1470475368000000000-1471080168000000000

それはうまくいきました-これは私が得た応答です:

{
  "minStartTimeNs": "1470475368000000000", 
  "maxEndTimeNs": "1471080168000000000", 
  "dataSourceId":
     "derived:com.google.step_count.delta:com.google.android.gms:estimated_steps", 

  "point": [
    {
      "modifiedTimeMillis": "1470804762704", 
      "startTimeNanos": "1470801347560000000", 
      "endTimeNanos": "1470801347567000000", 
      "value": [
        {
          "intVal": -3
        }
      ], 
      "dataTypeName": "com.google.step_count.delta", 
      "originDataSourceId":    "raw:com.google.step_count.delta:com.dsi.ant.plugins.antplus:AntPlus.0.124"
}, 

応答はかなり長くなりますが、この投稿のために切り捨てました。したがって、datasetsパラメータをリクエストに渡す場合:

1470475368-1471080168動作しませんが、動作し1470475368000000000-1471080168000000000ます。

これは私にとってはうまくいきました。誰かの助けになることを願っています!

于 2016-08-13T11:31:14.753 に答える