2013-06-04 6 views
5

La mia applicazione contiene un elenco di turni. Vorrei salvare l'elenco dei turni in un file di foglio di lavoro su un account di Google Drive. Dal l'API di Google Spreadsheets utilizza l'API di Google Doc deprecata per creare file di fogli di calcolo; come posso creare e modificare tale file su un disco google, tutto dal codice java all'interno della mia applicazione Android e senza alcuna interazione dell'utente (eccetto autorizzazioni), utilizzando le API di Google Drive solo?Come faccio a creare e modificare un file di foglio di lavoro su Google Drive utilizzando le API di Google Drive solo dalla mia app per Android?

risposta

4

Si dovrebbe dare un'occhiata a Google Spreadsheet API 3.0. Supporta JAVA che puoi usare nella tua applicazione Android.

+4

Sembra che per creare un foglio di lavoro devi utilizzare google doc apis, ma ** "La versione 3 dell'API di Google Documents List è stata ufficialmente ritirata dal 14 settembre 2012" **. Nella pagina dell'API dell'elenco di Google Documenti ti consigliamo di utilizzare l'API di Google Drive ma non riesco a trovare un modo per utilizzarlo per creare e modificare file di fogli di lavoro. –

4

L'API di Google Documenti è obsoleta, ma l'API di Sheets (corrente: v3) è ancora in vita.

Per soddisfare la funzionalità equivalente della combinazione Fogli originali + Documenti, , è necessario utilizzare l'API di Drive per eseguire manipolazioni di file come ricerca/spostamento/creazione/eliminazione.

Oltre agli scopi per i API Drive, aggiungere il seguente campo di applicazione alla concessione:

https://spreadsheets.google.com/feeds 

Se stai usando GData client library e Google OAuth client library, sarà abbastanza facile da installare entrambi i servizi, dopo l'autorizzazione OAuth 2.0 . Ecco un esempio:

// 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 di risorsa in entrambe le API sono identici, in modo da poter cercare id di alcuni file con metodi API unità e fogli di lavoro di accesso nel file con i metodi Fogli API. Ecco un esempio:

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); 

Se si ottiene un errore di "token non valida - AuthSub pedina ha portata sbagliato", aggiungendo stringa di query di access token al feedUrl può aiutare.

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

Cordiali saluti, l'elenco dei Q & come ho indicato durante la scrittura di questa risposta.

  • "E 'possibile utilizzare l'API di Google Drive con il foglio di calcolo API"
  • "Get foglio di calcolo creato con azionamento SDK"
  • "Google Drive SDK alternateLink Con OAuth2"