ver tienes setup sesion servicio permisos permiso para pantalla los inicio google funciona cuenta con como clientes cliente claves autorizacion oauth-2.0 google-api google-oauth google-spreadsheet-api

oauth 2.0 - tienes - Autorización de OAuth2 de Java/Scala con la API del cliente google gdata



oauth 2.0 como funciona (1)

¿Cómo realizaría el mismo flujo que la muestra de Google .Net en la subsección "Performing OAuth 2.0" , utilizando una API api equivalente?

Esa muestra de .NET que estoy tratando de imitar usando la API de Java parece adecuada para enviar una solicitud de API para crear una URL de autorización, luego asumo que usaría esa URL en un navegador para obtener un código de acceso ... permitiendo así que el código del lado del servidor utilice la hoja de cálculo de Google api a partir de entonces, para esa cuenta de google.

La clase api de Google Java de armario que identifiqué es OAuthHelper , pero parece requerir el userAuthorizationUrl en el momento de la instanciación, que es lo que realmente deseo obtener de él a través de su propio método createUserAuthorizationUrl después de haber logrado crear una instancia de él : un poco enigma cíclico para mí. Lo que parece indicar que me falta algo en mis suposiciones, probablemente esta no sea la clase correcta para imitar el ejemplo de código .Net.

Tu ayuda muy apreciada.


Parece que http://soatutorials.blogspot.co.at/2013/08/google-spreadsheet-api-connecting-with.html lo tiene para Java.

Código de la solución Scala, cortesía de http://javatoscala.com/ :

package com.articlio.googleApi import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import com.google.gdata.client.GoogleService; import com.google.gdata.client.authn.oauth.GoogleOAuthHelper; import com.google.gdata.client.authn.oauth.GoogleOAuthParameters; import com.google.gdata.client.authn.oauth.OAuthException; import com.google.gdata.client.authn.oauth.OAuthHmacSha1Signer; import com.google.gdata.client.authn.oauth.OAuthRsaSha1Signer; import com.google.gdata.client.authn.oauth.OAuthSigner; import com.google.gdata.client.spreadsheet.SpreadsheetService; import com.google.gdata.data.spreadsheet.SpreadsheetFeed import com.google.gdata.data.BaseEntry; import com.google.gdata.data.BaseFeed; import com.google.gdata.data.Feed; import com.google.gdata.util.AuthenticationException; import com.google.gdata.util.ServiceException; //remove if not needed import scala.collection.JavaConversions._ object OAuth2Sample { def loginOAuth2(clientID: String, clientSecret: String) { val SCOPES = "https://docs.google.com/feeds https://spreadsheets.google.com/feeds" val oauthParameters = new GoogleOAuthParameters oauthParameters.setOAuthConsumerKey(clientID) // var signer: OAuthSigner = null oauthParameters.setOAuthConsumerSecret(clientSecret) // signer = new OAuthHmacSha1Signer() val oauthHelper = new GoogleOAuthHelper(signer) oauthParameters.setScope(SCOPES) try { oauthHelper.getUnauthorizedRequestToken(oauthParameters) } catch { case e: OAuthException => e.printStackTrace() } val requestUrl = oauthHelper.createUserAuthorizationUrl(oauthParameters) println(requestUrl) println("Please visit the URL above to authorize your OAuth " + "request token. Once that is complete, press any key to " + "continue...") try { System.in.read() } catch { case e: IOException => e.printStackTrace() } var token: String = null try { token = oauthHelper.getAccessToken(oauthParameters) } catch { case e: OAuthException => e.printStackTrace() } println("OAuth Access Token: " + token) println() var feedUrl: URL = null try { feedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full") } catch { case e: MalformedURLException => e.printStackTrace() } println("Sending request to " + feedUrl.toString) println() val googleService = new SpreadsheetService("oauth-sample-app") try { googleService.setOAuthCredentials(oauthParameters, signer) } catch { case e: OAuthException => e.printStackTrace() } val feed = googleService.getFeed(feedUrl, classOf[SpreadsheetFeed]) val spreadsheets = feed.getEntries println("Response Data:") println("=====================================================") if (spreadsheets != null) { for (spreadsheet <- spreadsheets) { println(spreadsheet.getTitle.getPlainText) } } println("=====================================================") println() println("Revoking OAuth Token...") try { oauthHelper.revokeToken(oauthParameters) } catch { case e: OAuthException => e.printStackTrace() } println("OAuth Token revoked...") } }

Sin embargo, para scala, actualmente también necesita aplicar esto ...