Android: GoogleAuthUtil.getToken – ¿De dónde viene el objeto de cuenta que se supone que viene?
GoogleAuthUtil.getToken requiere que sea su segundo parámetro un objeto de cuenta, pero cuando se conecta con Google SignIn lo que obtiene en el resultado es un GoogleSignInAccount, que no es lo mismo. ¿Hay alguna manera de convertir GoogleSignInAccount en un objeto Account?
private void handleSignInResult(GoogleSignInResult result) { if (result.isSuccess()) { googleSignInAccount = result.getSignInAccount(); } }
Entonces despúes:
- Inicio de sesión de Android con acceso inactivo de google
- Inicia sesión silenciosa para recuperar el token con GoogleApiClient
- Inicio de sesión de Google Android con Firebase - statusCode DEVELOPER_ERROR
- Com.google.android.gms.auth.GoogleAuthException: Desconocido
- Signin de Google+: handleSignInResult devuelve false después de personalizar el botón de inicio de sesión
authToken = GoogleAuthUtil.getToken(context, [need an account here], scope);
Sé que puedo recuperar la dirección de correo electrónico mostrando el accountpicker, y también puedo obtener la dirección de correo electrónico del resultado de inicio de sesión de Google, pero no puedo ver una forma de obtener el objeto de cuenta completo.
- ¿Qué es keystore de producción en android y cómo puedo obtener el pathstore-keystore?
- Google Services Plugin no puede funcionar sin google-services.json
- Cómo obtener el código de autorización de Google una sola vez
- ¿Cómo recupero el nombre y apellido de una cuenta de Google que he iniciado sesión en Android?
- GoogleSignInResult devuelve DEVELOPER_ERROR en la aplicación de Android mediante Firebase
- Autorizar al usuario en el sitio web de Google en WebView mediante un diálogo
- GoogleAuthUtil como la autenticación de dispositivos para iOS para verificar que las solicitudes se originan desde un dispositivo Apple
Usando la documentación aquí puede ver que la respuesta tiene KEY_ACCOUNT_NAME y KEY_ACCOUNT_TYPE. Por lo tanto, puede crear su propio objeto de cuenta
Código:
if (requestCode == REQUEST_CODE_PICK_ACCOUNT) { // Receiving a result from the AccountPicker if (resultCode == RESULT_OK) { mEmail = data.getStringExtra(AccountManager.KEY_ACCOUNT_NAME); mType = data.getStringExtra(AccountManager.KEY_ACCOUNT_TYPE); // With the account name acquired, go get the auth token Account account = new Account(mEmail, mType); String token = GoogleAuthUtil.getToken(context, account, mScope); }