Nueva publicación "Autenticación con Google Play Services", Problemas con la obtención de un token a través de GoogleAuthUtil.getToken

Actualizar:

En este momento me inscribí en Google API con la cuenta de Google que también utilizo para Google App Engine y ahora el error ha cambiado a com.google.android.gms.auth.GoogleAuthException: Unknown


Google acaba de lanzar una nueva forma de registrarse en la aplicación de uno a través de una cuenta de Google y ha dado alguna explicación en su blogpost , también.

Estoy escribiendo una aplicación de Android que tienes que registrar para crear una cuenta de usuario y estoy usando Google App Engine para el back-end. Con los servicios de reproducción, quiero obtener los usuarios de correo electrónico afiliados con su dispositivo Android y un token. Ya puedo obtener el correo electrónico, sin embargo, conseguir el testigo sólo lanza errores y debido a la documentación es bastante escasa, no sé cómo solucionar estos. Así es como obtengo el correo electrónico:

 private String[] getAccountNames() { mAccountManager = AccountManager.get(this); Account[] accounts = mAccountManager.getAccountsByType(GoogleAuthUtil.GOOGLE_ACCOUNT_TYPE); names = new String[accounts.length]; for (int i = 0; i < names.length; i++) { names[i] = accounts[i].name; } return names; } 

Sin embargo, cuando llamo a token = GoogleAuthUtil.getToken(context, email, "scope" , me da estos errores: GooglePlayServices not available due to error 1 y com.google.android.gms.auth.GooglePlayServicesAvailabilityException: GooglePlayServicesNotAvailable .

Ahora mi pregunta es, ¿tengo que establecer los permisos o incluir cualquier biblioteca para arreglar eso? ¿Y cuál es el parámetro scope? Un ejemplo de cómo obtener un token y qué poner en el ámbito se da en su blogpost para establecer la variable de ámbito a "https://www.googleapis.com/auth/userinfo.profile" pero aún así obtener el mismo error Desafortunadamente.

También registré mi aplicación para la consola de la API de Google y habilité la API de G +, ¿tengo que configurar otra cosa allí, también?

Tuve el mismo problema con la biblioteca de clientes de Google para Google Drive. La solución es bastante fácil. Simplemente agregue "oauth2:" a su scopeUrl.

Incorrecto:

 GoogleAuthUtil.getToken(this, account.name, DriveScopes.DRIVE); 

Derecha:

 GoogleAuthUtil.getToken(this, account.name, "oauth2:" + DriveScopes.DRIVE); 

Primero tiene que pasar el ámbito correctamente formateado, como esto:

  private final static String G_PLUS_SCOPE = "oauth2:https://www.googleapis.com/auth/plus.me"; private final static String USERINFO_SCOPE = "https://www.googleapis.com/auth/userinfo.profile"; private final static String SCOPES = G_PLUS_SCOPE + " " + USERINFO_SCOPE; 

También tienes que instalar los servicios de Google Play desde aquí, en https://play.google.com/store/apps/details?id=com.google.android.gms . Los servicios de Google Play han comenzado a distribuirse en todos los dispositivos con Google Play instalado (Froyo +).

Hay más información proporcionada aquí: http://android-developers.blogspot.com/2012/09/google-play-services-and-oauth-identity.html

Sólo puede obtener un token para los servicios de Google que admitan OAuth2. Si está escribiendo su propio servicio web, debe autenticarse a él utilizando su mecanismo de autenticación nativo (nombre de usuario y contraseña?). "Alcance" es obviamente un ámbito no válido, pero parece que no tienes instalado Google Play Services, y esa es la causa de tu error. Puede instalarlo desde Play Store, pero no funcionará realmente para usted, ya que no está utilizando un servicio de Google.

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