2016-03-02 15 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應用程序的開發。最後投了答案,如果有人確認這個工作,或者如果我碰巧跑到這將接受答案 –