Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


¿Existe una forma oficial de autenticar Google Data API en Android mediante cuentas AccountManager?

Estoy intentando usar la API de datos de Google para una aplicación instalada en Android 2.1. No quiero que el usuario tenga que introducir sus credenciales si ya tiene una cuenta configurada en el dispositivo. Por lo tanto, estoy usando el AccountManager con el tipo de cuenta "com.google".

Pero, ¿a dónde ir desde allí? No hay ejemplos de Google sobre cómo realizar la autenticación de Google (authTokenType, etc.). Hay un proyecto que intenta hacerlo ( http://code.google.com/p/google-authenticator-for-android ) de una manera general pero sin ningún éxito, todavía.

¿Puede ser tan difícil? Esto es realmente mantener atrás las aplicaciones como los clientes de Google Reader que tienen que pedir al usuario sus credenciales de Google (que esperamos que nadie les da).

Cualquier puntería / consejo es apreciada.

  • Android hace que los números de teléfono puedan hacer clic, autodetect
  • Constant 'Running Android Lint' Falló, nullpointerexception apareciendo en Eclipse (pero no parece ser mi código)
  • Uso de ProGuard con Android
  • Java - Convertir cadena a objeto URI válido
  • SetTextViewText no actualizar widget
  • ¿Cómo suprimir la advertencia de Gradle en Android Studio?
  • ¿Cómo agregar la imagen en un texto de TextView?
  • Cómo probar el servicio remotel
  • 3 Solutions collect form web for “¿Existe una forma oficial de autenticar Google Data API en Android mediante cuentas AccountManager?”

    Sí, esto es posible. Una vez que tenga un identificador en la cuenta de Google (como describió), sólo tiene que solicitar un token de autorización del AccountManager para el servicio GData.

    Si el dispositivo Android ya tiene un token de autenticación (para el servicio GData particular al que intenta acceder), se le devolverá. De lo contrario, el AccountManager lo solicitará y lo devolverá. De cualquier manera, no es necesario preocuparse por esto como el AccountManager lo maneja.

    En el ejemplo siguiente, estoy utilizando la API de Google Spreadsheets:

    ArrayList<Account> googleAccounts = new ArrayList<Account>(); // Get all accounts Account[] accounts = accountManager.getAccounts(); for(Account account : accounts) { // Filter out the Google accounts if(account.type.compareToIgnoreCase("com.google")) { googleAccounts.add(account); } } AccountManager accountManager = AccountManager.get(activity); // Just for the example, I am using the first google account returned. Account account = googleAccounts.get(0); // "wise" = Google Spreadheets AccountManagerFuture<Bundle> amf = accountManager.getAuthToken(account, "wise", null, activity, null, null); try { Bundle authTokenBundle = amf.getResult(); String authToken = authTokenBundle.getString(AccountManager.KEY_AUTHTOKEN); // do something with the token InputStream response = sgc.getFeedAsStream(feedUrl, authToken, null, "2.1"); } 

    Espero que esto ayude.

    Eche un vistazo al código de ejemplo en la API de datos de google. Lo importante después de la autenticación es llamar a GoogleHeaders.setGoogleLogin (String).

    Asegúrese de llamar a GoogleHeaders.setGoogleLogin después de la autenticación. A continuación, puede comprobar este código de ejemplo para obtener más ayuda si es necesario.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.