es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Las solicitudes de esta aplicación cliente de Android están bloqueadas – Error de APIs de Google Flutter.

Descripción del problema:
Estoy utilizando la API de datos de YouTube para obtener algunos videos utilizando la clave de API en una aplicación Flutter.
He utilizado este código para obtener mis datos:

const FETCH_LINK =
        "$BASE_URL?part=$PART&playlistId=$PLAYLIST_ID&key=$API_KEY&maxResults=$MAX_RESULTS";
    var response = await http.get(Uri.parse(FETCH_LINK));

Cuando establezco las restricciones de la aplicación en “Ninguna” en la pestaña de credenciales en la consola de GCP del proyecto, obtengo mis datos perfectamente.

Ahora, cuando intento restringir los datos solo a aplicaciones de Android, muestra este error:

{error: {code: 403, message: Las solicitudes desde esta aplicación cliente de Android <vacío> están bloqueadas., errors: [{message: Las solicitudes desde esta aplicación cliente de Android <vacío> están bloqueadas., domain: global, reason: forbidden}], status: PERMISSION_DENIED, details: [{@type: type.googleapis.com/google.rpc.ErrorInfo, reason: API_KEY_ANDROID_APP_BLOCKED, domain: googleapis.com, metadata: {service: youtube.googleapis.com, consumer:

Lo que ya he verificado:
He agregado certificados de Depuración y Lanzamiento y el nombre del paquete de Android correctamente en la pestaña de credenciales.

¿Cuál podría ser el posible error aquí?
¿Hay algo que deba pasar como encabezados en mi solicitud?

Este es el punto final que estoy tratando de obtener:

https://youtube.googleapis.com/youtube/v3/playlistItems

Mi configuración se ve así: [imagen adjunta].

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución/Respuesta

    El error indica que las solicitudes de su aplicación cliente de Android están siendo bloqueadas. Esto podría deberse a algunas razones:

    1. Es posible que la clave API que está utilizando no haya concedido permisos a su aplicación de Android. Asegúrese de que el nombre del paquete y la huella digital del certificado SHA-1 de su aplicación de Android se agreguen correctamente a las restricciones de la clave API en la pestaña Credenciales de la consola de GCP.
    2. Es posible que esté utilizando una clave API no válida. Verifique si está utilizando la clave API correcta que está habilitada para la API de datos de Youtube.

    3. Es posible que no esté pasando los encabezados correctos en su solicitud. La API de datos de Youtube requiere que se envíe un encabezado Referer junto con sus solicitudes. Asegúrese de agregar este encabezado con el nombre del paquete de su aplicación de Android como valor.

    const FETCH_LINK =
        "$BASE_URL?part=$PART&playlistId=$PLAYLIST_ID&key=$API_KEY&maxResults=$MAX_RESULTS";
    var response = await http.get(
        Uri.parse(FETCH_LINK),
        headers: {'Referer': 'android-app://<nombre-del-paquete>'}); //reemplace <nombre-del-paquete> con el nombre del paquete de su aplicación de Android
    

    Agregar el encabezado Referer con el valor del nombre del paquete de la aplicación de Android debería resolver este problema.

Comments are closed.