管理数据源
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
您可以通过 Fitness REST API 创建、获取和更新数据源。数据源表示
唯一的传感器数据源。您使用数据源向健身数据中插入健身数据
存储,您可以检索由特定数据源插入的健身数据。
数据源由 Users.dataSources
表示
资源。
创建数据源
此示例演示了如何创建名为“MyDataSource”的新数据源
用于提供步数增量。
- HTTP 方法
- 投放后
- 请求网址
https://www.googleapis.com/fitness/v1/users/me/dataSources
- 请求正文
{
"dataStreamName": "MyDataSource",
"type": "derived",
"application": {
"detailsUrl": "http://example.com",
"name": "Foo Example App",
"version": "1"
},
"dataType": {
"field": [
{
"name": "steps",
"format": "integer"
}
],
"name": "com.google.step_count.delta"
},
"device": {
"manufacturer": "Example Manufacturer",
"model": "ExampleTablet",
"type": "tablet",
"uid": "1000001",
"version": "1.0"
}
}
- 响应
如果数据源成功创建,响应将处于 200 OK
状态
代码。响应正文包含数据源的 JSON 表示法,
包括 datasource.dataStreamId
属性,您可以将其用作后续请求的数据源 ID。
- Curl 命令
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X POST \
--header "Content-Type: application/json;encoding=utf-8" -d @createds.json \
"https://www.googleapis.com/fitness/v1/users/me/dataSources"
获取特定的数据源
此示例演示了如何检索数据源(“MyDataSource”)
创建 Deployment 清单创建新的数据源时
dataStreamId
包含唯一标识符(在下列列表中显示为“1234567890”)
示例)。这是您的开发者项目编号,此编号与
使用该特定开发者账号发出的所有请求请务必使用
来自您创建的数据源的 dataStreamId
。
- HTTP 方法
- 获取
- 请求网址
https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource
- 请求正文
- 无
- 响应
- 如果数据源存在,则响应为
200 OK
状态代码。响应正文包含
数据源的 JSON 表示法。
- Curl 命令
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X GET
--header "Content-Type: application/json;encoding=utf-8"
"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource"
获取汇总数据
此示例演示了如何查询特定数据源以进行汇总
数据,在本示例中为 estimated_steps
,即用于显示
Google 健身应用中的步数。请注意,JSON 请求中的时间戳
以毫秒为单位。
- HTTP 方法
- 投放后
- 请求网址
https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate
- 请求正文
{
"aggregateBy": [{
"dataSourceId":
"derived:com.google.step_count.delta:com.google.android.gms:estimated_steps"
}],
"bucketByTime": { "durationMillis": 86400000 },
"startTimeMillis": 1454284800000,
"endTimeMillis": 1455062400000
}
- 响应
如果数据源存在,则响应为 200 OK
状态代码。通过
响应正文包含数据源的 JSON 表示法。
- Curl 命令
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X POST \
--header "Content-Type: application/json;encoding=utf-8" -d @aggregate.json \
"https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate"
更新数据源
此示例演示了如何更新数据的名称和设备版本
来源。
- HTTP 方法
- PUT
- 请求网址
https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource
- 请求正文
{
"dataStreamId": "derived:com.google.step_count.delta:1234567890:Example Manufacturer:ExampleTablet:1000001:MyDataSource",
"dataStreamName": "MyDataSource",
"type": "derived",
"application": {
"detailsUrl": "http://example.com",
"name": "Foo Example App",
"version": "1"
},
"dataType": {
"field": [
{
"name": "steps",
"format": "integer"
}
],
"name": "com.google.step_count.delta"
},
"device": {
"manufacturer": "Example Manufacturer",
"model": "ExampleTablet",
"type": "tablet",
"uid": "1000001",
"version": "2.0"
}
}
- 响应
如果数据源已成功更新,响应将显示为 200 OK
状态
代码。响应正文包含数据源的 JSON 表示形式。
- Curl 命令
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X PUT \
--header "Content-Type: application/json;encoding=utf-8" -d @updateds.json \
"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource"
删除数据源
此示例演示了如何删除数据源。
- HTTP 方法
- 删除
- 请求网址
https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource
- 请求正文
- 无
- 响应
- 如果数据源已成功删除,则响应状态为
200 OK
代码。响应正文包含数据源的 JSON 表示,
已被删除。
- Curl 命令
$ curl --header "Authorization: Bearer ya29.yourtokenvalue" -X DELETE \
--header "Content-Type: application/json;encoding=utf-8" \
"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource"
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-31。
[null,null,["最后更新时间 (UTC):2025-08-31。"],[[["\u003cp\u003eThe Fitness REST API allows you to manage data sources, which represent unique sources of sensor data for inserting and retrieving fitness data within the Fitness Store.\u003c/p\u003e\n"],["\u003cp\u003eYou can create, retrieve, update, and delete data sources using the API with specific HTTP methods and request URLs.\u003c/p\u003e\n"],["\u003cp\u003eData sources can be identified using a unique \u003ccode\u003edataStreamId\u003c/code\u003e, including your developer project number, for subsequent interactions.\u003c/p\u003e\n"],["\u003cp\u003eThe API supports aggregating data from specific data sources within defined time ranges, like retrieving daily step counts.\u003c/p\u003e\n"],["\u003cp\u003eData source management should follow responsible data handling practices as outlined in the Google Fit guidelines for user privacy and security.\u003c/p\u003e\n"]]],[],null,["# Managing Data Sources\n\nThe Fitness REST API lets you create, obtain, and update data sources. A data source represents\na unique source of sensor data. You use data sources to insert fitness data into the fitness\nstore, and you can retrieve fitness data inserted by a particular data source.\n\nData sources are represented by the [`Users.dataSources`](/fit/rest/v1/reference/users/dataSources)\nresource.\n| **Important:** For best practices when managing user data, see [Responsible use of Google Fit](/fit/overview#responsible_use_of_google_fit).\n\nCreate a data source\n--------------------\n\nThis example demonstrates how to create a new data source named \"MyDataSource\"\nthat provides step count increments.\n\nHTTP method\n: POST\n\nRequest URL\n: `https://www.googleapis.com/fitness/v1/users/me/dataSources`\n\nRequest body\n:\n\n {\n \"dataStreamName\": \"MyDataSource\",\n \"type\": \"derived\",\n \"application\": {\n \"detailsUrl\": \"http://example.com\",\n \"name\": \"Foo Example App\",\n \"version\": \"1\"\n },\n \"dataType\": {\n \"field\": [\n {\n \"name\": \"steps\",\n \"format\": \"integer\"\n }\n ],\n \"name\": \"com.google.step_count.delta\"\n },\n \"device\": {\n \"manufacturer\": \"Example Manufacturer\",\n \"model\": \"ExampleTablet\",\n \"type\": \"tablet\",\n \"uid\": \"1000001\",\n \"version\": \"1.0\"\n }\n }\n\nResponse\n\n: If the data source is created successfully, the response is a `200 OK` status\n code. The response body contains a JSON representation of the data source,\n including a [`datasource.dataStreamId`](/fit/rest/v1/reference/users/dataSources#dataStreamId)\n property that you can use as the data source ID for subsequent requests.\n\nCurl command\n:\n\n ```\n $ curl --header \"Authorization: Bearer ya29.yourtokenvalue\" -X POST \\\n --header \"Content-Type: application/json;encoding=utf-8\" -d @createds.json \\\n \"https://www.googleapis.com/fitness/v1/users/me/dataSources\"\n ```\n\nGet a particular data source\n----------------------------\n\nThis example demonstrates how to retrieve the data source (\"MyDataSource\")\nthat you created in the previous example. When you create a new data source,\nthe `dataStreamId` includes a unique identifier (shown as \"1234567890\" in these\nexamples). This is your developer project number, and it will be the same for\nall requests made using that particular developer account. Be sure to use the\n`dataStreamId` from the data source you created.\n\nHTTP method\n: GET\n\nRequest URL\n: `https://www.googleapis.com/fitness/v1/users/me/dataSources/`**derived:com.google.step_count.delta:\u003cvar class=\"apiparam\" translate=\"no\"\u003e1234567890\u003c/var\u003e:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource**\n\nRequest body\n: None\n\nResponse\n: If the data source exists, the response is a `200 OK` status code. The response body contains a\n JSON representation of the data source.\n\nCurl command\n:\n\n ```\n $ curl --header \"Authorization: Bearer ya29.yourtokenvalue\" -X GET \n\n --header \"Content-Type: application/json;encoding=utf-8\" \n\n \"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource\"\n ```\n\nGet aggregated data\n-------------------\n\nThis example demonstrates how to query a specific data source for aggregated\ndata, in this case `estimated_steps`, which is the data source used to show\nstep count in the Google Fit app. Note that timestamps in the JSON request\nbody are in milliseconds.\n\nHTTP method\n: POST\n\nRequest URL\n: `https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate`\n\nRequest body\n:\n\n {\n \"aggregateBy\": [{\n \"dataSourceId\":\n \"derived:com.google.step_count.delta:com.google.android.gms:estimated_steps\"\n }],\n \"bucketByTime\": { \"durationMillis\": 86400000 },\n \"startTimeMillis\": 1454284800000,\n \"endTimeMillis\": 1455062400000\n }\n\nResponse\n\n: If the data source(s) exist, the response is a `200 OK` status code. The\n response body contains a JSON representation of the data source.\n\nCurl command\n:\n\n ```\n $ curl --header \"Authorization: Bearer ya29.yourtokenvalue\" -X POST \\\n --header \"Content-Type: application/json;encoding=utf-8\" -d @aggregate.json \\\n \"https://www.googleapis.com/fitness/v1/users/me/dataset:aggregate\"\n ```\n\nUpdate a data source\n--------------------\n\nThis example demonstrates how to update the name and device version for a data\nsource.\n\nHTTP method\n: PUT\n\nRequest URL\n: `https://www.googleapis.com/fitness/v1/users/me/dataSources/`**derived:com.google.step_count.delta:\u003cvar class=\"apiparam\" translate=\"no\"\u003e1234567890\u003c/var\u003e:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource**\n\nRequest body\n:\n\n {\n \"dataStreamId\": \"derived:com.google.step_count.delta:1234567890:Example Manufacturer:ExampleTablet:1000001:MyDataSource\",\n \"dataStreamName\": \"MyDataSource\",\n \"type\": \"derived\",\n \"application\": {\n \"detailsUrl\": \"http://example.com\",\n \"name\": \"Foo Example App\",\n \"version\": \"1\"\n },\n \"dataType\": {\n \"field\": [\n {\n \"name\": \"steps\",\n \"format\": \"integer\"\n }\n ],\n \"name\": \"com.google.step_count.delta\"\n },\n \"device\": {\n \"manufacturer\": \"Example Manufacturer\",\n \"model\": \"ExampleTablet\",\n \"type\": \"tablet\",\n \"uid\": \"1000001\",\n \"version\": \"2.0\"\n }\n }\n\nResponse\n\n: If the data source is updated successfully, the response is a `200 OK` status\n code. The response body contains a JSON representation of the data source.\n\nCurl command\n:\n\n ```\n $ curl --header \"Authorization: Bearer ya29.yourtokenvalue\" -X PUT \\\n --header \"Content-Type: application/json;encoding=utf-8\" -d @updateds.json \\\n \"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource\"\n ```\n\nDelete a data source\n--------------------\n\nThis example demonstrates how to delete a data source.\n\nHTTP method\n: DELETE\n\nRequest URL\n: `https://www.googleapis.com/fitness/v1/users/me/dataSources/`**derived:com.google.step_count.delta:\u003cvar class=\"apiparam\" translate=\"no\"\u003e1234567890\u003c/var\u003e:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource**\n\nRequest body\n: None\n\nResponse\n: If the data source is deleted successfully, the response is a `200 OK` status\n code. The response body contains a JSON representation of the data source that\n was deleted.\n\nCurl command\n:\n\n ```\n $ curl --header \"Authorization: Bearer ya29.yourtokenvalue\" -X DELETE \\\n --header \"Content-Type: application/json;encoding=utf-8\" \\\n \"https://www.googleapis.com/fitness/v1/users/me/dataSources/derived:com.google.step_count.delta:1234567890:Example%20Manufacturer:ExampleTablet:1000001:MyDataSource\"\n ```"]]