2013-06-04 2 views
5

내 신청서에 근무 교대 목록이 포함되어 있습니다. 교대 목록을 스프레드 시트 파일로 Google 드라이브 계정에 저장하고 싶습니다. Google 스프레드 시트 APIGoogle 문서 API을 사용하여 스프레드 시트 파일을 만들었습니다. Google 드라이브에서 이러한 파일을 만들고 편집하려면 어떻게해야합니까? 내 안드로이드 응용 프로그램 내부의 자바 코드에서 모든 사용자 상호 작용 (승인 제외)을 사용하고 Google 드라이브 API 만 사용?Android 앱에서만 Google 드라이브 API를 사용하여 Google 드라이브에서 스프레드 시트 파일을 만들고 수정하려면 어떻게해야하나요?

답변

4

Google Spreadsheet API 3.0을 살펴 봐야합니다. 그것은 당신이 안드로이드 응용 프로그램에서 사용할 수있는 자바를 지원합니다.

+4

그것은 것 같다 "는 스프레드 시트 API와 구글 드라이브 API를 사용할 수있다" 스프레드 시트를 만들려면 Google doc apis를 사용해야하지만 ** "Google 문서 목록 API 버전 3은 2012 년 9 월 14 일부터 공식적으로 사용되지 않습니다 **"**. Google 문서 목록 API 페이지에서 Google 드라이브 API를 사용하는 것이 좋지만 스프레드 시트 파일을 만들고 수정하는 데 사용할 수있는 방법을 찾지 못하는 것 같습니다. –

4

Google 문서 도구 API는 제공되지 않지만 스프레드 시트 API (현재 : v3)는 아직 사용 중입니다.

원래의 스프레드 시트 + 문서 도구 조합 인 과 동일한 기능을 수행하려면 검색/이동/생성/삭제와 같은 파일 조작을 수행하기 위해 드라이브 API를 사용해야합니다. 드라이브 API의 범위에 추가

, 그랜트에 다음 범위를 추가

https://spreadsheets.google.com/feeds 

당신이 GData client libraryGoogle OAuth client library를 사용하는 경우, 그것은 설치 아주 쉬운 것입니다 두 서비스의 OAuth 2.0 인증 후 . 다음은 그 예이다 : 당신이 시트 API 방법과 파일의 드라이브 API 방법 및 액세스 워크 시트와 일부 파일의 ID를 검색 할 수 있도록 두 API에서

// Acquire clientId, clientSecret and refreshToken 
... 

// Create shared credential 
GoogleCredential credential = new GoogleCredential.Builder() 
      .setClientSecrets(clientId, clientSecret) 
      .setJsonFactory(jsonFactory) 
      .setTransport(transport) 
      .build().setRefreshToken(refreshToken); 

// Setup both servives 
Drive driveService = new Drive.Builder(transport, jsonFactory, credential).build(); 
SpreadsheetService sheetService = new SpreadsheetService(...); 
sheetService.setOAuth2Credentials(credential); // only provided in newer releases 
sheetService.useSsl(); 

자원 ID는, 동일합니다. 당신의 오류가 나타나면

File file = driveService.files().get().setFields(...).execute(); 
String feedUrl = "https://spreadsheets.google.com/feeds/worksheets/" 
      + file.getId + "/private/full"; 
WorksheetFeed feed = sheetService.getFeed(feedUrl, WorksheetFeed.class); 

"토큰의 유효을 - 위해 AuthSub 토큰이 잘못 범위가"도움이 될 수는 feedUrl에 accessToken의 추가 쿼리 문자열을 예를 들면 다음과 같습니다. 이 답변을 작성할 때

feedUrl = feedUrl + "?access_token=" + credential.getAccessToken(); 

참고로, Q &의 목록은 내가 언급했듯이.

  • "OAuth2를 가진 Google 드라이브 SDK alternateLink" "스프레드 시트 드라이브 SDK로 생성하기"
관련 문제