从后端服务器使用google fit api

时间:2016-03-02 07:08:42

标签: android google-api backend google-oauth2 google-fit

我正在编写一个Android应用程序,需要从后端服务器读取用户的健身数据(步骤,卡路里等)。如有必要,此服务器将读取数据并将通知推送到Android应用程序。

我设法完成了身份验证部分,应用程序现在将从oauth流程收到的代码发送到后端服务器(遵循this示例),服务器成功交换代码访问权限并刷新令牌。

问题是我没有找到任何关于如何从谷歌样本中的后端服务器访问健身数据的资源。我找到了图书馆

<dependency> <groupId>com.google.apis</groupId> <artifactId>google-api-services-fitness</artifactId> <version>v1-rev16-1.21.0</version> </dependency>

但没有找到关于如何在后端服务器中使用它的任何指南。有没有关于如何在没有用户交互的情况下从后端服务器访问健身数据的指南?

先谢谢,我搜索了stackoverflow和互联网没有成功

1 个答案:

答案 0 :(得分:1)

如果有人需要,可以使用javadoc here。以下是来自后端服务器的用户高度和重量批量请求的简单示例:

GoogleCredential credential = new GoogleCredential().setAccessToken(activeUser.getAccessToken());

Fitness fitness = new Fitness.Builder(new NetHttpTransport(), 
                                      JacksonFactory.getDefaultInstance(), 
                                      credential)
        .setApplicationName("MyApp")
        .build();

BatchRequest batchRequest = new BatchRequest(new NetHttpTransport(), credential);
fitness.users()
        .dataSources()
        .datasets()
        .get("me", "derived:com.google.weight:com.google.android.gms:merge_weight",
                        String.format("0-%d", System.nanoTime()))
        .queue(batchRequest, new WeightRequestCallback(activeUser));

fitness.users()
        .dataSources()
        .datasets()
        .get("me", "derived:com.google.height:com.google.android.gms:merge_height",
                String.format("0-%d", System.nanoTime()))
        .queue(batchRequest, new HeightRequestCallback(activeUser));


batchRequest.execute();

HeightRequestCallbackWeightRequestCallback延长JsonBatchCallback<Dataset>