studio setaccesstype secret google android oauth-2.0 userinfo

setaccesstype - Android OAuth-2.0 google login para información del usuario usando webview



setaccesstype google api (1)

Estoy creando una aplicación que permitirá al usuario iniciar sesión con Facebook o Google Account. Presionan el botón "INICIAR SESIÓN" y luego se les solicita que inicien sesión usando Facebook o Google, cuando eligen una de estas ventanas emergentes.

El problema es con la autenticación de Google, leer algunos artículos y buscar en la web, todavía es posible hacer el inicio de sesión de Google sin el Administrador de cuentas, sé que cambiaron algo.

Si es posible, tal vez algún ejemplo en el que pueda trabajar o verlo funcionar. Intenté con esto: http://blog.doityourselfandroid.com/2011/08/06/oauth-2-0-flow-android/ Acaba de editarse para no hacer latitud sino información de usuario y siempre obteniendo el error 400.

Gracias por ayudarme, ¡todos me ayudaron mucho hasta ahora!

editar: Acerca del error: recibí la excepción 400 solicitud incorrecta Generalmente sé qué línea y cuál es el problema.

El problema está en la línea donde creo AccessTonekResponse y lo ejecuto porque requiere el secreto del cliente y no puedo encontrar el secreto del cliente en la página de la API de Google, solo en la aplicación web, nada en la aplicación instalada.

public void onPageStarted(WebView view, String url,Bitmap bitmap) { System.out.println("onPageStarted : " + url); } @Override public void onPageFinished(WebView view, String url) { if (url.startsWith(OAuth2ClientCredentials.REDIRECT_URI)) { try { if (url.indexOf("code=")!=-1) { String code = extractCodeFromUrl(url); System.out.println(code); AccessTokenResponse accessTokenResponse = new GoogleAuthorizationCodeGrant(new NetHttpTransport(), new JacksonFactory(), OAuth2ClientCredentials.CLIENT_ID, OAuth2ClientCredentials.CLIENT_SECRET, code, OAuth2ClientCredentials.REDIRECT_URI).execute(); CredentialStore credentialStore = new SharedPreferencesCredentialStore(prefs); credentialStore.write(accessTokenResponse); view.setVisibility(View.INVISIBLE); startActivity(new Intent(OAuthAccessTokenActivity.this,LatitudeApiSample.class)); } else if (url.indexOf("error=")!=-1) { view.setVisibility(View.INVISIBLE); new SharedPreferencesCredentialStore(prefs).clearCredentials(); startActivity(new Intent(OAuthAccessTokenActivity.this,LatitudeApiSample.class)); } } catch (IOException e) { e.printStackTrace(); System.out.println(e.getLocalizedMessage()); } } System.out.println("onPageFinished : " + url); }

código de error:

08-22 09:22:07.866: W/System.err(391): com.google.api.client.http.HttpResponseException: 400 Bad Request 08-22 09:22:07.866: W/System.err(391): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:380) 08-22 09:22:07.876: W/System.err(391): at com.google.api.client.auth.oauth2.draft10.AccessTokenRequest.executeUnparsed(AccessTokenRequest.java:457) 08-22 09:22:07.876: W/System.err(391): at com.google.api.client.auth.oauth2.draft10.AccessTokenRequest.execute(AccessTokenRequest.java:473) 08-22 09:22:07.876: W/System.err(391): at com.ecs.android.sample.oauth2.OAuthAccessTokenActivity$1.onPageFinished(OAuthAccessTokenActivity.java:79) 08-22 09:22:07.876: W/System.err(391): at android.webkit.CallbackProxy.handleMessage(CallbackProxy.java:274) 08-22 09:22:07.896: W/System.err(391): at android.os.Handler.dispatchMessage(Handler.java:99) 08-22 09:22:07.896: W/System.err(391): at android.os.Looper.loop(Looper.java:123) 08-22 09:22:07.896: W/System.err(391): at android.app.ActivityThread.main(ActivityThread.java:4627) 08-22 09:22:07.896: W/System.err(391): at java.lang.reflect.Method.invokeNative(Native Method) 08-22 09:22:07.896: W/System.err(391): at java.lang.reflect.Method.invoke(Method.java:521) 08-22 09:22:07.896: W/System.err(391): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 08-22 09:22:07.896: W/System.err(391): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 08-22 09:22:07.896: W/System.err(391): at dalvik.system.NativeStart.main(Native Method)


Probablemente haya creado su ID de cliente en la consola API de Google como aplicación instalada con tipo de aplicación Android . Esto solo debe usarse con AuthenticationManager . Si desea implementar el flujo usted mismo, use Application Type Other y obtendrá el secreto del cliente que necesita.