2016-03-02 103 views
0

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

我设法完成认证部分,应用程序现在将接收到的代码从oauth流发送到后端服务器(后面的this示例),服务器成功交换代码访问和刷新标记。

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

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

,但没有找到如何在后端服务器上使用这个任何指引。有没有关于如何在没有用户交互的情况下从后端服务器访问健身数据的指导原则?提前

感谢和我搜索计算器和互联网没有成功

+1

这是Android API的东西。要从后端服务器访问,您需要使用Rest API's https://developers.google.com/fit/上有文档。您应该知道,Google服务器和Android设备会不定期同步,因此设备可能几个小时甚至几天都不可见。 – Ifor

+0

感谢您的评论。据我所知,我提到的库是其余API的封装。问题是有一些其他库的例子,如驱动器,配置文件等,但我无法找到关于这个特定的库使用情况的一些指南。任何帮助? –

+0

没有。我对其余API的使用是直接的,我必须处理不同后端的负载,所以已经有了所有杂乱的东西。我实际上在使用Android,但是转到其他API而不是Android API,因为这与我的流程非常吻合,我只需在用户完成活动后上传数据。 – Ifor

回答

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>

+0

根据上面的讨论,我切换到Android应用程序的开发。最后投了答案,如果有人确认这个工作,或者如果我碰巧跑到这将接受答案 –