Você está na página 1de 6

Como se conectar ao Google Drive em Java Demostrao de como usar Java para upar arquivos no Google Drive Author:

Jonas Mayer (jmayer13@hotmail.com) Mostrarei como upar arquivos no Google Drive. Baseado no "Quickstart: Run a Drive App in Java" encontrado em https://developers.google.com/drive/quickstart-java possvel usar outras linguagens como PHP, JavaScript, .NET, Python, Objective-C/iOS, Android, Ruby e Go. Etapa 1: Ative o Drive API Primeiro voc precisa ativar o Drive API da conta em https://code.google.com/apis/console/ Selecione no menu Services, e selecione on em Drive API.

Figura 1:Selecione Services

Figura 2:Ative o Drive API

Selecione API Acess e v em "Create an OAuth 2.0 client ID..."

Figura 3:Selecione API Access

Figura 4: Create an OAuth 2.0 client ID...

Preencha os dados.

Figura 5: Crie uma Client ID...

Em Client ID Settings voc seleciona o tipo de aplicao (Web application) Web, (Service account) para servios do Google (Installed application) de desktop ou dispositivo mvel.

Figura 6: Configure a Client ID...

Para desktop selecione Installed application e Other. E clique em Create client ID Pronto! Guarde os valores gerados.

Figura 7: Client ID

Etapa 2: Baixe a biblioteca Baixe http://mavenrepo.google-api-java-client.googlecode.com/hg/com/google/apis/googleapi-services-drive/v2-rev5-1.7.2-beta/google-api-services-drive-v2-rev5-1.7.2-beta.zip e adicione-a ao seu projeto. Etapa 3: Mos a obra! Aqui esta um exemplo um pouco modificado que o Google fornece.

Listagem 1: Upando um arquivo

import import import import import import import import import import import import import import import import import

com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; com.google.api.client.googleapis.auth.oauth2.GoogleCredential; com.google.api.client.googleapis.auth.oauth2.GoogleTokenResponse; com.google.api.client.http.FileContent; com.google.api.client.http.HttpTransport; com.google.api.client.http.javanet.NetHttpTransport; com.google.api.client.json.JsonFactory; com.google.api.client.json.jackson.JacksonFactory; com.google.api.services.drive.Drive; com.google.api.services.drive.DriveScopes; com.google.api.services.drive.model.File; java.awt.Desktop; java.io.BufferedReader; java.io.IOException; java.io.InputStreamReader; java.net.URI; java.util.Arrays;

public class DriveCommandLine { //adicione aqui o CLIENT_ID que ns criamos private static String CLIENT_ID = "CLIENT_ID AQUI"; //adicione aqui o CLIENT_SECRET que ns criamos private static String CLIENT_SECRET = "CLIENT_SECRET AQUI"; //a REDIRECT_URI vai ser a mesma sempre (provavelmente) private static String REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob"; public static void main(String[] args) throws IOException { HttpTransport httpTransport = new NetHttpTransport(); JsonFactory jsonFactory = new JacksonFactory(); //gera um cdigo de autorizao GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( httpTransport, jsonFactory, CLIENT_ID, CLIENT_SECRET, Arrays.asList(DriveScopes.DRIVE)).setAccessType("online").setApprovalPrompt("auto").bu ild(); String urlAuthorization = flow.newAuthorizationUrl().setRedirectUri(REDIRECT_URI).build(); //Est parte pertence ao original /* * System.out.println("Please open the following URL in your browser then type the authorization code:"); * System.out.println(" " + url); */ //Optimizei para abrir a uri automaticamente try { Desktop desktop = Desktop.getDesktop(); URI uri = new URI(urlAuthorization); desktop.browse(uri); } catch (Exception ex) { System.err.println("Erro ao abrir pgina"); ex.printStackTrace(); } //aqui ele l o cdigo que retorna do site BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String code = br.readLine(); GoogleTokenResponse response = flow.newTokenRequest(code).setRedirectUri(REDIRECT_URI).execute(); GoogleCredential credential = new GoogleCredential().setFromTokenResponse(response); //Cria um nova autorizao do API client Drive service = new Drive.Builder(httpTransport, jsonFactory, credential).build(); //Insere um arquivo File body = new File(); //ttulo body.setTitle("My document"); //descrio body.setDescription("A test document"); body.setMimeType("text/plain"); //local do arquivo, lembre-se de colocar um arquivo na pasta do projeto java.io.File fileContent = new java.io.File("document.txt"); FileContent mediaContent = new FileContent("text/plain", fileContent); File file = service.files().insert(body, mediaContent).execute(); System.out.println("File ID: " + file.getId()); } }//fim da classe DriveCommandLine

Vamos testar! Depois de inserir o Client ID e o Client Secret no cdigo, execute-o. Ira abrir est pgina de confirmao.

Figura 8: Pgina de confirmao

Copie o cdigo e cole no console.

Figura 9: Pagina de confirmao

O arquivo foi upado com sucesso!

Referencias: Quickstart: Run a Drive App in Java; Google; <https://developers.google.com/drive/quickstartjava> acessado em 7/12/2012