gpt4 book ai didi

java - Google Fit REST API(不是 Android API!)的 Java 客户端库示例

转载 作者:行者123 更新时间:2023-12-04 18:00:13 30 4
gpt4 key购买 nike

我想使用 Google Fit 编写一个 java 程序 REST API . (它不是 Android 应用,所以我不能使用 Android API。)

好像有一个Java Client library for the REST API - 所以我认为这很容易。

但是,我找不到任何说明如何使用客户端库的样本/示例(只有 javadoc)。

我找到了有关如何使用 Android API 的示例 - 例如this .但它完全不同,所以没有用。

对于我使用过的其他 Google API,客户端库附带了示例……在这种情况下并非如此。

有什么想法吗?谢谢。

最佳答案

通过拼凑来自 javadoc 的一些信息, REST API documentation ,并通过使用我自己使用其他 Google API Java 客户端库的一些示例,我已经能够或多或少地使其工作......以下是一些代码片段:

import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.services.fitness.Fitness;
import com.google.api.services.fitness.model.*;

获取 GoogleCredential - 这个库是 well documented ...

GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
...
.build();

使用刚刚创建的 credential 创建作为所有调用基础的服务...

Fitness service = new Fitness.Builder(
HTTP_TRANSPORT,
JSON_FACTORY,
credential)
.setApplicationName(APPLICATION_NAME)
.build();

为您的应用程序/设备创建一个或多个数据源

DataSource content = new DataSource()
.setApplication(YOUR_APPLICATION)
.setType(DATA_SOURCE_RAW)
.setName(name)
.setDataType(dataType);

Fitness.Users.DataSources.Create request =
service.users().dataSources().create("me", content);

DataSource ds = request.execute();

这是您在创建自己的 DataSource 时需要使用的 dataType 示例...这是使用标准的公共(public)指标(在本例中步)谷歌公开...见this .

private static final String DT_STEPS = "com.google.step_count.delta";
private static final DataTypeField FIELD_STEPS = new
DataTypeField().setName("steps").setFormat(FORMAT_INTEGER);
private static final List<DataTypeField> STEPS_FIELDS = Arrays.asList(
FIELD_STEPS);
public static final DataType DATA_TYPE_STEPS =
new DataType()
.setName(DT_STEPS)
.setField(STEPS_FIELDS);

现在使用 DataSource 创建 DataType 的实际数据点 - 在 DataSet 中...

    Value value = new Value().setIntVal(Integer.valueOf(steps));
List<Value> values = Arrays.asList(value);

DataPoint point = new DataPoint()
.setValue(values)
.setDataTypeName(DT_STEPS)
.setStartTimeNanos(startNS)
.setEndTimeNanos(endNS);

List<DataPoint> dataPoints = Arrays.asList(point);

String datasetId = startNS + "-" endNS;

Dataset content = new Dataset()
.setDataSourceId(dataSourceId)
.setPoint(dataPoints)
.setMinStartTimeNs(startNS)
.setMaxEndTimeNs(endNS);

Fitness.Users.DataSources.Datasets.Patch request =
service.users().dataSources().datasets().patch(
"me",
dataSourceId,
datasetId,
content);

Dataset ds = request.execute();

您仍然需要创建一个Session 和一个Segment Activity DataSet...但它们遵循相似的结构。

关于java - Google Fit REST API(不是 Android API!)的 Java 客户端库示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36368371/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com