Google APIs
Cómo usar las API de Google con Flutter.
El paquete de API de Google expone docenas de servicios de Google que puedes usar desde proyectos Dart.
Esta página describe cómo utilizar las API que interactúan con los datos del usuario final mediante la autenticación de Google.
Algunos ejemplos de API de datos de usuario son Calendar, Gmail, YouTube y Firebase.
Para añadir autenticación a Firebase de forma explícita, consulta el codelab Añadir un flujo de autenticación de usuario a una aplicación Flutter usando FirebaseUI y la documentación de Primeros pasos con Firebase Authentication en Flutter.
Resumen
#Para usar las API de Google, sigue estos pasos:
- Elige la API deseada
- Habilita la API
- Autentica y determina el usuario actual
- Obtén un cliente HTTP autenticado
- Crea y utiliza la clase de API deseada
1. Elige la API deseada
#La documentación de package:googleapis
enumera
cada API como una biblioteca Dart independiente&emdash;en un formato
nombre_version.
Consulta youtube_v3
como ejemplo.
Cada biblioteca puede proporcionar muchos tipos,
pero hay una clase raíz que termina en Api.
Para YouTube, es YouTubeApi.
No solo la clase Api es la que necesitas
instanciar (ver paso 3), sino que también
expone los alcances (scopes) que representan los permisos
necesarios para usar la API. Por ejemplo,
la sección Constants
de la
clase YouTubeApi enumera los alcances disponibles.
Para solicitar acceso de lectura (pero no de escritura) a los
datos de YouTube de un usuario final, autentica al usuario con
youtubeReadonlyScope.
// Provides the `YouTubeApi` class.
import 'package:googleapis/youtube/v3.dart';
2. Habilita la API
#Para usar las API de Google debes tener una cuenta de Google y un proyecto de Google. También necesitas habilitar la API deseada.
Este ejemplo habilita la YouTube Data API v3. Para más detalles, consulta las instrucciones de inicio rápido.
3. Autentica y determina el usuario actual
#Utiliza el paquete google_sign_in para autenticar a los usuarios con su identidad de Google. Configura el inicio de sesión para cada plataforma que desees soportar.
/// Provides the `GoogleSignIn` class.
import 'package:google_sign_in/google_sign_in.dart';
Se accede a la funcionalidad del paquete a través de
una instancia estática de la clase GoogleSignIn
.
Antes de interactuar con la instancia,
se debe llamar al método initialize y permitir que se complete.
final GoogleSignIn _googleSignIn = GoogleSignIn.instance;
@override
void initState() {
super.initState();
_googleSignIn.initialize();
// ···
}
Una vez completada la inicialización pero antes de la autenticación del usuario, escucha los eventos de autenticación para determinar si un usuario ha iniciado sesión.
GoogleSignInAccount? _currentUser;
@override
void initState() {
super.initState();
_googleSignIn.initialize().then((_) {
_googleSignIn.authenticationEvents.listen((event) {
setState(() {
_currentUser = switch (event) {
GoogleSignInAuthenticationEventSignIn() => event.user,
_ => null,
};
});
});
});
}
Una vez que estés escuchando cualquier evento de autenticación relevante, puedes intentar autenticar a un usuario que haya iniciado sesión previamente.
void initState() {
super.initState();
_googleSignIn.initialize().then((_) {
// ...
// Attempt to authenticate a previously signed in user.
_googleSignIn.attemptLightweightAuthentication();
});
}
Para permitir también la autenticación de nuevos usuarios,
sigue las instrucciones proporcionadas por
package:google_sign_in.
Una vez que un usuario ha sido autenticado, debes obtener un cliente HTTP autenticado.
4. Obtén un cliente HTTP autenticado
#Una vez que tengas un usuario con sesión iniciada, solicita los
tokens de autorización de cliente correspondientes utilizando authorizationForScopes
para los alcances (scopes) de la API que tu aplicación requiera.
const relevantScopes = [YouTubeApi.youtubeReadonlyScope];
final authorization = await currentUser.authorizationClient
.authorizationForScopes(relevantScopes);
Una vez que tengas los tokens de autorización correspondientes,
utiliza la extensión authClient
de
package:extension_google_sign_in_as_googleapis_auth
para
configurar un cliente HTTP autenticado con las credenciales correspondientes aplicadas.
import 'package:extension_google_sign_in_as_googleapis_auth/extension_google_sign_in_as_googleapis_auth.dart';
final authenticatedClient = authorization!.authClient(
scopes: relevantScopes,
);
5. Crea y utiliza la clase de API deseada
#Utiliza la API para crear el tipo de API deseado y llamar a sus métodos. Por ejemplo:
final youTubeApi = YouTubeApi(authenticatedClient);
final favorites = await youTubeApi.playlistItems.list(
['snippet'],
playlistId: 'LL', // Liked List
);
Más información
#Es posible que quieras consultar lo siguiente:
- El ejemplo de
extension_google_sign_in_as_googleapis_authes una implementación funcional de los conceptos descritos en esta página.
A menos que se indique lo contrario, la documentación en este sitio refleja Flutter 3.44.0. Página actualizada por última vez el 25-06-2026. Ver código fuente oreportar un problema.