Obtén una clave de API

A fin de utilizar Maps SDK for Android, debes tener una clave de API. La clave de API es un identificador único que se utiliza para autenticar solicitudes asociadas con tu proyecto con fines de uso y facturación.

Obtén la clave de API

Debes tener, al menos, una clave de API asociada a tu proyecto.

Para obtener una clave de API, haz lo siguiente:

  1. Accede a Google Cloud Platform Console.
  2. Haz clic en el menú desplegable del proyecto y selecciona o crea el proyecto en que deseas agregar la clave de API.
  3. Haz clic en el botón de menú  y selecciona API y servicios > Credenciales.
  4. En la página Credenciales, haz clic en Crear credenciales > Clave de API.
    El diálogo Se creó la clave de API mostrará la clave de API que acabas de crear.
  5. Haz clic en Cerrar.
    La nueva clave de API aparecerá en la página Credenciales debajo de Claves de API.
    Recuerda restringir la clave de API antes de utilizarla en producción.

Agrega la clave de API a tu app

Sigue los pasos que se indican a continuación para incluir la clave de API en el manifiesto de tu aplicación, que se encuentra en el archivo AndroidManifest.xml.

  1. En AndroidManifest.xml, inserta el siguiente elemento justo antes de la etiqueta </application> de cierre para agregarlo como componente secundario de <application>:
        <meta-data
            android:name="com.google.android.geo.API_KEY"
            android:value="YOUR_API_KEY"/>
        

    En el atributo value, reemplaza YOUR_API_KEY por tu clave de API (la string encriptada). Este elemento configura la clave com.google.android.geo.API_KEY en el valor de tu clave de API.

  2. Guarda el archivo AndroidManifest.xml y vuelve a compilar tu aplicación.

Nota: Como se mostró anteriormente, com.google.android.geo.API_KEY es el nombre de metadatos recomendado para la clave de API. Se puede utilizar una clave con este nombre a fin de autenticar varias API basadas en Google Maps en la plataforma de Android, incluido Maps SDK for Android. Respecto de la retrocompatibilidad, la API también admite el nombre com.google.android.maps.v2.API_KEY. Este nombre heredado solo permite la autenticación de la versión 2 de la API de Google Maps para Android. Una aplicación puede especificar solo uno de los nombres de metadatos de la clave de API. Si se especifican ambos, la API arrojará una excepción.

Restringe la clave de API

Te recomendamos que restrinjas tu clave de API. Las restricciones proporcionan mayor seguridad y ayudan a garantizar que solo se realicen solicitudes autorizadas con tu clave de API. Hay dos restricciones y debes configurar ambas:

  • Restricción de la aplicación: Limita el uso de la clave de API a sitios web (URL de referencia HTTP), servidores web (direcciones IP) o apps para dispositivos móviles (para Android o iOS). Puedes seleccionar solo una restricción de esta categoría, según la plataforma de la API o del SDK (consulta API de GMP por plataforma).

    Nota: Si necesitas llamar a las API web, de servicios web o de dispositivos móviles desde la misma app (del cliente), crea y restringe varias claves.

  • Restricción de la API: Limita el uso de la clave de API a uno o más SDK o API. Las solicitudes que se realicen a una API o a un SDK asociados a la clave de API se procesarán correctamente, pero aquellas que se realicen a una API o un SDK no asociados con dicha clave no se podrán completar. La API o el SDK deben estar habilitados y admitir la restricción de la aplicación.

Para restringir una clave de API, sigue estos pasos:

  1. Ve a Google Cloud Platform Console.
  2. Haz clic en el menú desplegable del proyecto y selecciona aquel que contenga la clave de API que deseas proteger.
  3. Haz clic en el botón de menú  y selecciona API y servicios > Credenciales.
  4. En la página Credenciales, haz clic en el nombre de la clave de API que deseas proteger.
  5. En la página Restringir y cambiar nombre de la clave de API, establece las restricciones:
    • Restricciones de la aplicación
      • Selecciona Apps para Android y sigue las instrucciones.
      • Haz clic en + Agregar nombre del paquete y huella digital.
      • Ingresa el nombre del paquete y la huella digital del certificado SHA-1. Por ejemplo:
        com.example.android.mapexample
        BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
        Para obtener más información, consulta Dónde encontrar la huella digital SHA-1 de tu app.
    • Restricciones de la API
      • Selecciona Restringir clave.
      • Haz clic en Seleccionar API y elige Maps SDK for Android.
        Si Maps SDK for Android no aparece en la lista, debes habilitarlo.
    • Haz clic en Guardar.

Dónde encontrar la huella digital SHA-1 de tu app

La restricción de la clave de API de Android se basa en una versión abreviada del certificado digital de tu app, conocida como huella digital SHA-1.

Cómo obtener la información de certificación en Android Studio

Si sigues las instrucciones de la guía de introducción de Maps SDK for Android, Android Studio creará un práctico archivo google_maps_api.xml con las credenciales de tu app.

Elige uno de los siguientes métodos para obtener tu clave de API en Android Studio:

  • Método rápido y fácil: Utiliza el vínculo proporcionado en el archivo google_maps_api.xml, que Android Studio creó automáticamente:
    1. Copia el vínculo proporcionado en el archivo google_maps_api.xml y pégalo en el navegador. El vínculo te redirigirá a Google Cloud Platform Console y proporcionará allí la información necesaria a través de parámetros de URL. Esto reducirá la cantidad de datos que debes ingresar manualmente.
    2. Sigue las instrucciones para crear un proyecto nuevo en Google Cloud Platform Console o selecciona uno existente.
    3. Crea una clave de API con restricción de Android para tu proyecto.
    4. Copia la clave de API obtenida, regresa a Android Studio y pega la clave de API en el elemento <string> del archivo google_maps_api.xml.
  • Método un poco más lento: Utiliza las credenciales proporcionadas en el archivo google_maps_api.xml, que Android Studio creó automáticamente:
    1. Copia las credenciales proporcionadas en el archivo google_maps_api.xml.
    2. Ve a Google Cloud Platform Console en tu navegador.
    3. Con las credenciales copiadas, agrega tu app a una clave de API existente o crea una clave de API nueva.

Cómo obtener los datos del certificado por tu cuenta

Si no seguiste las instrucciones de la guía de introducción cuando creaste tu app, debes obtener tú mismo la huella digital SHA-1 para el certificado. Primero, verifica que estés utilizando el certificado correcto. Puedes tener dos certificados:

  • Certificado de depuración: Las herramientas del SDK de Android generan este certificado automáticamente cuando realizas una compilación de depuración. Utiliza este certificado solo con apps que estés probando. No intentes publicar una app firmada con un certificado de depuración. El certificado de depuración se describe más detalladamente en Firma en el modo de depuración en la documentación para desarrolladores de Android.
  • Certificado de lanzamiento: Las herramientas del SDK de Android generan este certificado cuando realizas una compilación de lanzamiento. También puedes generar este certificado con el programa keytool. Utiliza este certificado cuando estés listo para lanzar tu app al público.

Sigue los pasos que se incluyen a continuación para mostrar la huella digital SHA-1 de un certificado mediante el programa keytool con el parámetro -v. Para obtener más información sobre Keytool, consulta la documentación de Oracle.

Certificado de depuración

Cómo visualizar la huella digital del certificado de depuración

  1. Busca el archivo de almacén de claves correspondiente a tu depuración. El nombre del archivo es debug.keystore y se crea la primera vez que compilas el proyecto. De forma predeterminada, se almacena en el mismo directorio que los archivos de tu dispositivo virtual de Android (AVD):

    • macOS y Linux: ~/.android/
    • Windows Vista y Windows 7: C:\Users\your_user_name\.android\
  2. Indica la huella digital SHA-1:

    • En el caso de macOS o Linux, abre una ventana de la terminal y escribe lo siguiente:

      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • En el caso de Windows Vista y Windows 7, ejecuta lo siguiente:

      keytool -list -v -keystore "%USERPROFILE%\.android\debug.keystore" -alias androiddebugkey -storepass android -keypass android

Deberías ver un resultado similar a este:

Alias name: androiddebugkey
Creation date: Jan 01, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4aa9b300
Valid from: Mon Jan 01 08:04:04 UTC 2013 until: Mon Jan 01 18:04:04 PST 2033
Certificate fingerprints:
     MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6A:AC:F9
     SHA1: BB:0D:AC:74:D3:21:E1:43:07:71:9B:62:90:AF:A1:66:6E:44:5D:75
     Signature algorithm name: SHA1withRSA
     Version: 3
Certificado de lanzamiento

Cómo visualizar la huella digital del certificado de lanzamiento

  1. Busca el archivo de almacén de claves correspondiente a tu certificado de lanzamiento. No existe una ubicación ni un nombre predeterminados para este archivo. Si no especificas estos datos al compilar tu app para su lanzamiento, el archivo .apk quedará sin firmar, y deberás firmarlo antes de publicarlo. Para el certificado de lanzamiento, también necesitas el alias del certificado y las contraseñas del almacén de claves y del certificado. Puedes indicar los alias de todas las claves en un almacén de claves. Para ello, ingresa lo siguiente:

    keytool -list -keystore your_keystore_name

    Reemplaza your_keystore_name por la ruta de acceso completamente calificada y el nombre del almacén de claves, incluida la extensión .keystore. Se te pedirá que ingreses la contraseña del almacén de claves. Luego, keytool mostrará todos los alias en el almacén de claves.

  2. En una terminal o un símbolo del sistema, ingresa lo siguiente:

    keytool -list -v -keystore your_keystore_name
          -alias your_alias_name

    Reemplaza your_keystore_name por la ruta de acceso completamente calificada y el nombre del almacén de claves, incluida la extensión .keystore. Reemplaza your_alias_name por el alias que le asignaste al certificado cuando lo creaste.

Deberías ver un resultado similar a este:

Alias name: <alias_name>
Creation date: Feb 02, 2013
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Android Debug, O=Android, C=US
Issuer: CN=Android Debug, O=Android, C=US
Serial number: 4cc9b300
Valid from: Mon Feb 02 08:01:04 UTC 2013 until: Mon Feb 02 18:05:04 PST 2033
Certificate fingerprints:
    MD5:  AE:9F:95:D0:A6:86:89:BC:A8:70:BA:34:FF:6B:AC:F9
    SHA1: BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:90:AF:A1:66:6E:44:5D:75
    Signature algorithm name: SHA1withRSA
    Version: 3

En la línea que comienza con SHA1, se incluye la huella digital SHA-1 del certificado. La huella digital es una secuencia de 20 números hexadecimales de dos dígitos separados por dos puntos.

Para obtener más información sobre los certificados digitales, consulta la guía Firma tu app de Android.

Clientes del plan premium y clientes migrados

Los clientes del plan premium y los clientes que migraron de ese plan al modelo de precio prepago de Google Map Platform tienen la opción de usar una clave de API o un ID de cliente para autenticar solicitudes. Para obtener más información, consulta Descripción general para obtener claves de API en la documentación del plan premium.