Login Oauth google

113 views
Skip to first unread message

Ruben

unread,
Feb 6, 2012, 7:06:44 AM2/6/12
to desarrolladores-android
Buenos días!

Tengo que hacer un login contra google con oauth. Estoy indagando y no
soy capaz de sacarlo muy bien. Alguien me puede decir de algún
tutorial, algún proyecto que funcione del que poder ir tirando.

Javier Hdez

unread,
Feb 6, 2012, 7:13:47 AM2/6/12
to desarrolladores-android

Ruben

unread,
Feb 6, 2012, 7:29:30 AM2/6/12
to desarrolladores-android
Eso también lo se hacer yo... gracias

On 6 feb, 13:13, Javier Hdez <droin...@gmail.com> wrote:
> Hola,
>
> aquí hay varios a ver si te puede servir >http://www.google.es/search?sourceid=chrome&ie=UTF-8&q=oaut#sclient=p...

Javier Hdez

unread,
Feb 6, 2012, 8:11:46 AM2/6/12
to desarrolladores-android
@Ruben: "Alguien me puede decir de algún
tutorial, algún proyecto que funcione del que poder ir tirando"

¿y entonces para qué haces la "pregunta"?

Ruben

unread,
Feb 6, 2012, 9:52:01 AM2/6/12
to desarrolladores-android
Se lo que he puesto y también se hacer una búsqueda en google. Las
guías que he encontrado no las entiendo y los proyectos que he
encontrado no soy capaz de ejecutarlos. No se si es que no los se
configurar...

Si lo único que haces es ponerme un link a una búsqueda de google como
comprenderás no me sirve de nada....

Jose Alberto Rodríguez Martín

unread,
Feb 6, 2012, 10:50:20 AM2/6/12
to desarrollad...@googlegroups.com
Rubén, al menos deberías dar las gracias por escribirte eso y no contestar así.. Aquí estamos para ayudar en todo lo que podamos, pero no para sacarle el trabajo a nadie. Siempre hay que estar agradecido, por poco que sea.



--
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a desarrollad...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a desarrolladores-a...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/desarrolladores-android?hl=es.




--
Un saludo,

    José Alberto

--

Tlf. +34 651 50 67 72
Email. in...@josealbertonerja.com
Web. http://www.josealbertonerja.com
http://www.webmastersmalaga.com
http://www.cursoseomalaga.com
http://www.iniciador.com

Ruben

unread,
Feb 6, 2012, 11:00:56 AM2/6/12
to desarrolladores-android
@Jose Alberto: Creo que he sido bastante educado y no le he faltado al
respeto a nadie. Es más esto es un grupo para hablar de programación y
he pedido ayuda por que no soy capaz de hacer algo y ya he buscado en
google. No pongo un post sin antes buscar por mi cuenta. Puedo ponerte
todas las pestañas que tengo ahora abiertas con información al
respecto de Oauth. No pido que hagan mi trabajo pero me parece
totalmente de broma que alguien me conteste con una búsqueda de
google. Si preguntar por un tutorial o algún ejemplo es pedir que
hagan mi trabajo me parece de chiste.

On 6 feb, 16:50, Jose Alberto Rodríguez Martín
<jarodriguez...@gmail.com> wrote:
> Rubén, al menos deberías dar las gracias por escribirte eso y no contestar
> así.. Aquí estamos para ayudar en todo lo que podamos, pero no para sacarle
> el trabajo a nadie. Siempre hay que estar agradecido, por poco que sea.
>
> Email. i...@josealbertonerja.com
> Web.http://www.josealbertonerja.comhttp://www.webmastersmalaga.comhttp://www.cursoseomalaga.comhttp://www.iniciador.com

CarloS Sing Ramos

unread,
Feb 6, 2012, 11:23:26 AM2/6/12
to desarrollad...@googlegroups.com
uhmm, bueno Ruben, kreo ke te has exedido un poco con tus comentarios y bien si lo ke te enviaron fue una busqueda en google pero muchas veces el problema esta en como uno hace las busquedas, ya que dependiendo de lo que se puesto se encontrara informacion y kreo ke esa fue la intención de Javier, no es para ke respondas de esa forma.
Salu2
Linux Register User  #525697
--==[[Carlos Sing]]==--

Ruben

unread,
Feb 6, 2012, 11:28:57 AM2/6/12
to desarrolladores-android
Venga chavales... Os pido perdón si alguno se ha sentido ofendido....
No era mi intención y joe ya esta bien de prensa rosa. En vez de
seguír dandole vueltas al tema nadie ha hecho un login con Oauth y
puede contestar al tema?

Esta es el tutorial que mas creo que se asemeja a lo que puedo
necesitar: http://blog.doityourselfandroid.com/2010/11/10/oauth-flow-in-android-app/
Me bajo el código, intento ejecutarlo y no soy capaz.

On 6 feb, 17:23, CarloS Sing Ramos <carloss...@gmail.com> wrote:
> uhmm, bueno Ruben, kreo ke te has exedido un poco con tus comentarios y
> bien si lo ke te enviaron fue una busqueda en google pero muchas veces el
> problema esta en como uno hace las busquedas, ya que dependiendo de lo que
> se puesto se encontrara informacion y kreo ke esa fue la intención de
> Javier, no es para ke respondas de esa forma.
>
> > /www.josealbertonerja.comhttp://www.webmastersmalaga.comhttp://www.cur...
> >www.iniciador.com

Javier Hdez

unread,
Feb 6, 2012, 1:46:50 PM2/6/12
to desarrolladores-android
Pues eso mismo, foro/lista de ayuda, aquí nadie es adivino y nadie va
a saber cuales son tus dudas, si no las expones, ¿no crees?. Tu has
preguntado por un Tutorial, yo no he entendido otra cosa (bueno sí,
que habías indagado un poco y no encontrabas nada, pero eso es de
obviar sino no estarías aquí preguntando).

En el link que te envíe hay tutoriales muy buenos, y ese que has
enviado, está en el séptimo lugar de la búsqueda, así que no se que no
se por qué te sorprende (o te parece de broma) que te ponga una
búsqueda de google.

Sinceramente, el sorprendido soy yo, desde tu primer hilo, pero que no
quiero entrar en detalles, te he puesto la búsqueda que es lo que he
creído que necesitas y ya, no he dicho ni mú, y encima te pones así.

Si quieres, te puedes leer esto >> http://www.sindominio.net/ayuda/preguntas-inteligentes.html

Saludos

PD: He vuelto a leer todos los post, y es que son todos de risa, pero
el de las 16:00 es para descojonarse, ¿hablas en serio o esto en una
broma?


On 6 feb, 16:28, Ruben <rubenfernandez...@gmail.com> wrote:
> Venga chavales... Os pido perdón si alguno se ha sentido ofendido....
> No era mi intención y joe ya esta bien de prensa rosa. En vez de
> seguír dandole vueltas al tema nadie ha hecho un login con Oauth y
> puede contestar al tema?
>
> Esta es el tutorial que mas creo que se asemeja a lo que puedo
> necesitar:http://blog.doityourselfandroid.com/2010/11/10/oauth-flow-in-android-...

Javier Hdez

unread,
Feb 6, 2012, 1:49:14 PM2/6/12
to desarrolladores-android
*perdón, me refería a todos los post que ha enviado Ruben.

Jose Alberto Rodríguez Martín

unread,
Feb 6, 2012, 1:50:18 PM2/6/12
to desarrollad...@googlegroups.com
Yo te entendí Javier, no son las formas de contestar en un hilo/foro donde la gente ayuda si puede o saber y no exigiendo ni diciendo lo que ha dicho con respecto a la búsqueda.

Un saludo,

     José Alberto

Ruben

unread,
Feb 7, 2012, 11:33:01 AM2/7/12
to desarrolladores-android
Vuelvo a pedir disculpas si alguien se ha sentido ofendido... Más no
puedo hacer...

On 6 feb, 19:50, Jose Alberto Rodríguez Martín
<jarodriguez...@gmail.com> wrote:
> Yo te entendí Javier, no son las formas de contestar en un hilo/foro donde
> la gente ayuda si puede o saber y no exigiendo ni diciendo lo que ha dicho
> con respecto a la búsqueda.
>
> Un saludo,
>
>      José Alberto
>

Jose Alberto Rodríguez Martín

unread,
Feb 7, 2012, 1:10:46 PM2/7/12
to desarrollad...@googlegroups.com

Te perdonamos pero ya sabes pa la próxima jeje.

Un saludo,
      Jose Alberto

Leonardo Garcia

unread,
Feb 7, 2012, 1:27:55 PM2/7/12
to desarrollad...@googlegroups.com
Ruben, creo que encontre algo que te puede servir, yo hice hace un tiempo un oauth 2.0 con google desde android, no tengo la pagina de donde tome la fuente, pero si tengo el codigo,

Recuerdo que para la parte de las credenciales utilizaba un webview, para no hacer un intent al navegador y no hacer que te tome el usuario logueado que tu usas.

Son 3 clases y un activity que se encarga de toda la actividad, ahora te lo voy a enviar por correo privado porque no se si funcionara que adjunte archivos aqui... aunque pensandolo bien estaria bueno que lo adjunte aqui y quede para descargar...

Bueno, los que sepan como conviene que quede este codigo disponible para todos me dicen y lo hago, por lo pronto yo se lo envio directamente a ruben.

Saludos y Suerte!!

Leonardo Garcia


2012/2/7 Jose Alberto Rodríguez Martín <jarodri...@gmail.com>

Jose Alberto Rodríguez Martín

unread,
Feb 7, 2012, 1:29:46 PM2/7/12
to desarrollad...@googlegroups.com

Por aqui mejor por si mas adelante sirviese para otro.

Leonardo Garcia

unread,
Feb 7, 2012, 1:38:23 PM2/7/12
to desarrollad...@googlegroups.com
En el proyecto mio esta muy mezclado con mis cosas, es medio dificil de separar y creo que te vas a marear mas entre mis cosas y lo que realmente es.

Esta es la pagina que tome de base


El proyecto que muestra de ejemplo esta aqui

Recuerdo que habia que ver algo de las versiones de las librerias, en los comentarios de la nota dice algo al respecto.

Estoy seguro que desde esto, podras lograr lo que tu quieres, que es obtener el access_token :)

Saludos y Suerte!!

Leonardo

Ruben

unread,
Feb 8, 2012, 5:12:05 AM2/8/12
to desarrolladores-android
Muchísimas gracias!!!!!!!

Al final entre una cosa y la otra he conseguido lanzar la aplicación y
se me abre el navegador con las url que le introduzco. Pero nada mas
arrancar el navegador ya me dice "Invalid token". Entonces tengo
ciertas dudas...

He añadido una serie de librerías al proyecto y parece todo correcto,
os pongo el código y pongo en mayúsculas donde tengo ciertas dudas:

protected void onResume() {
// extract the OAUTH access token if it exists
Uri uri = this.getIntent().getData();
if(uri != null) {
ProgressDialog dialog = ProgressDialog.show(this, "",
"Logging en E2E Medianet, please wait...", true);
access_token = uri.getQueryParameter("oauth_token");
access_token = convertToAccessToken(client.requestToken);
// setDefaultAccessToken(access_token, this); // keep this in
the database
dialog.cancel();
}

super.onResume();
}


public String convertToAccessToken(String request_token) {
ArrayList<Map.Entry<String, String>> params =
new ArrayList<Map.Entry<String, String>>();
OAuthClient oclient = new OAuthClient(new HttpClient4());
OAuthAccessor accessor = client;
params.add(new OAuth.Parameter("oauth_token", request_token));
try {
OAuthMessage omessage = oclient.invoke(accessor, "POST",
accessor.consumer.serviceProvider.accessTokenURL, params);
return omessage.getParameter("oauth_token");
} catch (Exception ioe) {
return "";
}
}

private void sendData() {
// Intent intent = new Intent(); // para abrir una nueva ventana
// intent.setClass(E2EMain.this, ListWorkers.class);
// // donde estoy y a donde quiero ir
// startActivity(intent);

// get the request token
ProgressDialog dialog = ProgressDialog.show(this, "",
"Comunicandose con E2E, please wait...", true);
client = defaultClient();

dialog.cancel();

Intent i = new Intent(Intent.ACTION_VIEW);

i.setData(Uri.parse(client.consumer.serviceProvider.userAuthorizationURL
+
"?oauth_token=" +
client.requestToken +
"&oauth_callback=" +
client.consumer.callbackURL));
startActivity(i);

}

OAuthServiceProvider defaultProvider() { /////////////////////TENGO
LA DUDA DE SI ESTAS URL SON LAS QUE ME TIENEN QUE PROPORCIONAR EL
TOKEN
return new OAuthServiceProvider("https://www.google.com/accounts/
OAuthGetRequestToken", "https://www.google.com/accounts/
OAuthAuthorizeToken", "https://www.google.com/accounts/
OAuthGetAccessToken");
}

OAuthAccessor defaultClient() {
String callbackUrl = "http://www.google.com/
OAuthCallback/";/////////////LO MISMO CON EL CALLBACKURL Y EL
CONSUMERKEY Y EL CONSUMER SECRET
OAuthServiceProvider provider = defaultProvider();

String consumerKey = "anonymous";
String consumerSecret = "anonymous";
OAuthConsumer consumer = new OAuthConsumer(callbackUrl,
consumerKey,
consumerSecret, provider);
OAuthAccessor accessor = new OAuthAccessor(consumer);

OAuthClient oaclient = new OAuthClient(new HttpClient4());

try {
oaclient.getRequestToken(accessor);
request_token = accessor.requestToken;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (OAuthException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return accessor;
}


Y viendo otros ejemplos también tengo ciertas dudas en el manifiesto.
He añadido ciertos permisos, creo que son los correctos porque me
arranca bien la aplicación y me dice lo del "invalid token" pero la
duda que tengo es en esta linea en concreto: <!--
<data android:scheme="E2E"/>--> ¿que tengo que poner aquí?


<activity
android:name=".E2EMain"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category
android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />

<category
android:name="android.intent.category.DEFAULT" />
<category
android:name="android.intent.category.BROWSABLE" />
<!-- <data android:scheme="E2E"/>-->
</intent-filter>
</activity>


Yo creo, pero igual me equivoco, que con las librerías que tengo y
este código debería funcionar... entonces supongo que el error esta en
las urls pero claro tampoco estoy seguro....




On 7 feb, 19:38, Leonardo Garcia <colo...@gmail.com> wrote:
> En el proyecto mio esta muy mezclado con mis cosas, es medio dificil de
> separar y creo que te vas a marear mas entre mis cosas y lo que realmente
> es.
>
> Esta es la pagina que tome de basehttp://blog.doityourselfandroid.com/2011/08/06/oauth-2-0-flow-android/
>
> El proyecto que muestra de ejemplo esta aquihttps://github.com/ddewaele/AndroidOauth2GoogleApiJavaClient
>
> Recuerdo que habia que ver algo de las versiones de las librerias, en los
> comentarios de la nota dice algo al respecto.
>
> Estoy seguro que desde esto, podras lograr lo que tu quieres, que es
> obtener el access_token :)
>
> Saludos y Suerte!!
>
> Leonardo
>
> 2012/2/7 Jose Alberto Rodríguez Martín <jarodriguez...@gmail.com>
>
>
>
>
>
>
>
> > Por aqui mejor por si mas adelante sirviese para otro.
> >  El 07/02/2012 19:27, "Leonardo Garcia" <colo...@gmail.com> escribió:
>
> > Ruben, creo que encontre algo que te puede servir, yo hice hace un tiempo
> >> un oauth 2.0 con google desde android, no tengo la pagina de donde tome la
> >> fuente, pero si tengo el codigo,
>
> >> Recuerdo que para la parte de las credenciales utilizaba un webview, para
> >> no hacer un intent al navegador y no hacer que te tome el usuario logueado
> >> que tu usas.
>
> >> Son 3 clases y un activity que se encarga de toda la actividad, ahora te
> >> lo voy a enviar por correo privado porque no se si funcionara que adjunte
> >> archivos aqui... aunque pensandolo bien estaria bueno que lo adjunte aqui y
> >> quede para descargar...
>
> >> Bueno, los que sepan como conviene que quede este codigo disponible para
> >> todos me dicen y lo hago, por lo pronto yo se lo envio directamente a ruben.
>
> >> Saludos y Suerte!!
>
> >> Leonardo Garcia
>
> >> 2012/2/7 Jose Alberto Rodríguez Martín <jarodriguez...@gmail.com>
>
> >>> Te perdonamos pero ya sabes pa la próxima jeje.
>
> >>> Un saludo,
> >>>       Jose Alberto
> ...
>
> leer más »

Ruben

unread,
Feb 8, 2012, 7:44:07 AM2/8/12
to desarrolladores-android
He comprobado la url que lanzo al hacer esto:

Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(client.consumer.serviceProvider.userAuthorizationURL
+
"?oauth_token=" +
client.requestToken +
"&oauth_callback=" +
client.consumer.callbackURL));
startActivity(i);

y es la siguiente:
https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=null&oauth_callback=http://www.google.com/OAuthCallback/

Lo cual no tiene mucho sentido o eso creo yo desde mi ignorancia...
> ...
>
> leer más »

Ruben

unread,
Feb 8, 2012, 12:03:18 PM2/8/12
to desarrolladores-android
@Leonardo Muchas gracias!!!!! He conseguido logarme con google!! Pero
tengo un problema.... jaja.

¿Como le de permisos a mi aplicación?

Supongo que tengo que jugar con estas variables, no?

public static final String API_REQUEST = "https://
www.google.com/m8/feeds/contacts/default/full?alt=json";

public static final String ENCODING = "UTF-8";

public static final String OAUTH_CALLBACK_SCHEME = "x-oauthflow";
public static final String OAUTH_CALLBACK_HOST = "callback";
public static final String OAUTH_CALLBACK_URL =
OAUTH_CALLBACK_SCHEME + "://" + OAUTH_CALLBACK_HOST;

En el ejemplo quiere que le de permisos para los contactos de
google... Yo quiero que le de permiso a mi aplicación. ¿Es tocando
estos valores o es otro tipo de configuración?

On 7 feb, 19:38, Leonardo Garcia <colo...@gmail.com> wrote:
> En el proyecto mio esta muy mezclado con mis cosas, es medio dificil de
> separar y creo que te vas a marear mas entre mis cosas y lo que realmente
> es.
>
> Esta es la pagina que tome de basehttp://blog.doityourselfandroid.com/2011/08/06/oauth-2-0-flow-android/
>
> El proyecto que muestra de ejemplo esta aquihttps://github.com/ddewaele/AndroidOauth2GoogleApiJavaClient
>
> Recuerdo que habia que ver algo de las versiones de las librerias, en los
> comentarios de la nota dice algo al respecto.
>
> Estoy seguro que desde esto, podras lograr lo que tu quieres, que es
> obtener el access_token :)
>
> Saludos y Suerte!!
>
> Leonardo
>
> 2012/2/7 Jose Alberto Rodríguez Martín <jarodriguez...@gmail.com>
>
>
>
>
>
>
>
> > Por aqui mejor por si mas adelante sirviese para otro.
> >  El 07/02/2012 19:27, "Leonardo Garcia" <colo...@gmail.com> escribió:
>
> > Ruben, creo que encontre algo que te puede servir, yo hice hace un tiempo
> >> un oauth 2.0 con google desde android, no tengo la pagina de donde tome la
> >> fuente, pero si tengo el codigo,
>
> >> Recuerdo que para la parte de las credenciales utilizaba un webview, para
> >> no hacer un intent al navegador y no hacer que te tome el usuario logueado
> >> que tu usas.
>
> >> Son 3 clases y un activity que se encarga de toda la actividad, ahora te
> >> lo voy a enviar por correo privado porque no se si funcionara que adjunte
> >> archivos aqui... aunque pensandolo bien estaria bueno que lo adjunte aqui y
> >> quede para descargar...
>
> >> Bueno, los que sepan como conviene que quede este codigo disponible para
> >> todos me dicen y lo hago, por lo pronto yo se lo envio directamente a ruben.
>
> >> Saludos y Suerte!!
>
> >> Leonardo Garcia
>
> >> 2012/2/7 Jose Alberto Rodríguez Martín <jarodriguez...@gmail.com>
>
> >>> Te perdonamos pero ya sabes pa la próxima jeje.
>
> >>> Un saludo,
> >>>       Jose Alberto
> ...
>
> leer más »

Leonardo Garcia

unread,
Feb 9, 2012, 8:17:56 AM2/9/12
to desarrollad...@googlegroups.com
Me alegra haberte ayudado Ruben, si mal no recuerdo, para obtener distintos accesos, todo se trabaja con los SCOPES que tu le pides.

Y si mal no recuerdo el scope, las distintas funcionalidades de google se ponen separadas por un espacio y son las url de un servicio especifico.

Si quisieras Calendar y Docs el SCOPE SERIA "https://www.google.com/calendar/feeds/ https://docs.google.com/feeds/"

Si solo quieres calendar deberia ser "https://www.google.com/calendar/feeds/"

En los textos que tu copiaste no estan los scopes, pero imagino que en la clase donde tienes las constantes deberia estar.

Dime si te ha servido esto. Saludos

Leonardo

2012/2/8 Ruben <rubenfer...@gmail.com>

Ruben

unread,
Feb 9, 2012, 10:04:41 AM2/9/12
to desarrolladores-android
Buenas!

Pues al final entre lo que tenia y este tutorial:
http://blog.doityourselfandroid.com/2011/02/13/guide-to-integrating-twitter-android-application/
he conseguido obtener tanto un token como un tokensecret.

Basandome en este ultimo tutorial he conseguido hacerlo perfectamente
para twitter y así asegurarme de que mi código estaba bien; para ello
he añadido el SCOPE correcto, que en el ejemplo del twitter no lo
utiliza, que en este caso es el de contacts. Cual ha sido mi problema
al ajustarlo a mi aplicación... pues resulta que los tokens que
obtengo no me valen para mi aplicación. Me dice que no son correctos.
Estoy investigando a ver si es problema de mi servicio web, de mi
código, de mis urls...

Muchisimas gracias por la ayuda! Os mantendré informados y seguiré
contando la evolución para cuando alguien mas necesite hacer el login
con OAuth y se encuentre con los mismos problemas.

On Feb 9, 2:17 pm, Leonardo Garcia <colo...@gmail.com> wrote:
> Me alegra haberte ayudado Ruben, si mal no recuerdo, para obtener distintos
> accesos, todo se trabaja con los SCOPES que tu le pides.
>
> Y si mal no recuerdo el scope, las distintas funcionalidades de google se
> ponen separadas por un espacio y son las url de un servicio especifico.
>
> Si quisieras Calendar y Docs el SCOPE SERIA "https://www.google.com/calendar/feeds/https://docs.google.com/feeds/"
>
> Si solo quieres calendar deberia ser "https://www.google.com/calendar/feeds/
> "
>
> En los textos que tu copiaste no estan los scopes, pero imagino que en la
> clase donde tienes las constantes deberia estar.
>
> Dime si te ha servido esto. Saludos
>
> Leonardo
>
> 2012/2/8 Ruben <rubenfernandez...@gmail.com>
> ...
>
> read more »

Leonardo Garcia

unread,
Feb 9, 2012, 10:08:03 AM2/9/12
to desarrollad...@googlegroups.com
Creo que tienes que tener en cuenta que acceder a tokens de oauth 2.0 no es lo mismo que 1.1 ( y por lo tanto no valen unos para lo otro ).

Ten cuidado con esto.

Saludos y cuentanos como te ha ido

Leonardo

2012/2/9 Ruben <rubenfer...@gmail.com>
Reply all
Reply to author
Forward
0 new messages