2012-12-11 20 views
5

Non riesco a trovare un compito apparentemente semplice nella versione 1.12.0-beta della libreria client Java dell'API di Google. Posso eseguire l'autenticazione con OAuth2 e recuperare e modificare parti di Google Drive necessarie per la mia applicazione. Tuttavia, mi piacerebbe seguire il Google best practices e visualizzare le informazioni utente di base nella parte superiore della mia app.Client Java API Java - Informazioni utente

Ho cercato nel labirinto di documenti che Google fornisce e ho cercato anche in molti altri siti e non riesco a trovare quello che mi serve. Ho esaminato l'API Userinfo suggerita nella pagina delle migliori pratiche. Per quanto posso vedere, dovrebbe essere una parte del client java che sto usando, ma non lo è. Ho persino trovato uno full method example che descrive esattamente come potrei ottenere le informazioni dell'utente. La classe a cui fa riferimento - Userinfo - non sembra essere una parte di nessuna delle librerie incluse nella libreria client che sto usando. Ho cercato ulteriormente per vedere se mi mancava un download separato che includesse il client Java dei servizi OAuth.

Penso che il problema principale che sto avendo è trovare informazioni rilevanti per la versione corrente della libreria client Java. Qualcun altro ha riscontrato questo problema? Apprezzerei molto qualsiasi suggerimento su come ottenere informazioni di base sull'utente.

Grazie per il vostro aiuto.

risposta

0

Penso che si confondano l'API Drip e l'API OAuth.

utente informazioni possono essere ottenuto dal API Drive:

(dove il servizio è l'istanza di com.google.api.services.drive.Drive)

About about = service.about().get().execute(); 
System.out.println("Current user name: " + about.getName()); 
System.out.println("Root folder ID: " + about.getRootFolderId()); 
System.out.println("Total quota (bytes): " + about.getQuotaBytesTotal()); 
System.out.println("Used quota (bytes): " + about.getQuotaBytesUsed()); 

Da https://developers.google.com/drive/v2/reference/about/get

0

per chi cerca, come mi è stato, è necessario:

<dependency> 
     <groupId>com.google.apis</groupId> 
     <artifactId>google-api-services-oauth2</artifactId> 
</dependency> 

Pro consiglio: quando yo hai un nome di classe Java, vai a Maven Central, Ricerca avanzata e cerca il nome della classe. Elencherà tutte le librerie che contengono la classe. Puoi utilizzare il nome completo o solo il nome della classe. Anche se non usi Maven, puoi scaricare il file jar da lì.

0

Ecco un esempio di ottenere userinfo utilizzando OAuth 2 in Java Se si aggiunge Google Drive per portata (per esempio. https://www.googleapis.com/auth/drive.file), si può anche accedere all'API di Google Drive

esempio completa
https://github.com/riversun/google-login-servlet-example-simple

Nella servlet

 GoogleCredential credential = OAuthSession.getInstance().createCredential(req); 

     Oauth2 oauth2 = new Oauth2.Builder(
       new com.google.api.client.http.javanet.NetHttpTransport(), 
       new com.google.api.client.json.jackson2.JacksonFactory(), 
       credential).build(); 

     // Get userInfo using credential 
     Userinfoplus userInfo = oauth2.userinfo().get().execute(); 

Nel OAuthFilter

// Return OAuth2 scope you want to be granted to by users 
    @Override 
    protected List<String> getScopes() { 

     final String OAUTH2_SCOPE_MAIL = "email"; 
     final String OAUTH2_SCOPE_USERINFO_PROFILE = "https://www.googleapis.com/auth/userinfo.profile"; 

     return Arrays.asList(OAUTH2_SCOPE_MAIL, OAUTH2_SCOPE_USERINFO_PROFILE);}