API-Schlüssel anfordern

Hinweis

Damit du das Maps SDK für Android nutzen kannst, benötigst du ein Projekt mit einem Rechnungskonto. Außerdem muss das Maps SDK für Android aktiviert sein. Weitere Informationen findest du im englischsprachigen Artikel Get Started with Google Maps Platform.

API-Schlüssel erstellen

Der API-Schlüssel ist eine eindeutige Kennung, mit der Anfragen deines Projekts zu Nutzungs- und Abrechnungszwecken authentifiziert werden. Du musst mindestens einen API-Schlüssel mit deinem Projekt verknüpft haben.

So erstellst du einen API-Schlüssel:

  1. Wähle in der Cloud Console auf der Seite für die Projektauswahl ein Google Cloud-Projekt aus, für das du einen API-Schlüssel hinzufügen möchtest, oder erstelle ein neues Projekt.

    Zur Projektauswahl

  2. Rufe die Seite APIs & Dienste > Anmeldedaten auf.

    Zur Seite „Anmeldedaten“

  3. Klicke auf der Seite Anmeldedaten auf Anmeldedaten erstellen > API-Schlüssel.
    Im Dialogfeld API-Schlüssel erstellt wird der neu erstellte API-Schlüssel angezeigt.
  4. Klicke auf Schließen.
    Der neue API-Schlüssel wird auf der Seite Anmeldedaten unter API-Schlüssel aufgeführt.
    Du musst den API-Schlüssel einschränken, bevor du ihn in der Produktionsumgebung verwendest.

API-Schlüssel in App einfügen

Der API-Schlüssel sollte nicht im Versionsverwaltungssystem eingecheckt werden. Wir empfehlen, ihn stattdessen in der Datei local.properties im Stammverzeichnis des Projekts zu speichern. Weitere Informationen zur Datei local.properties findest du unter Gradle-Attributdateien. Mit dem unten beschriebenen Gradle-Verfahren kann ein API-Schlüssel in der Datei local.properties gespeichert und in der App sicher darauf verwiesen werden.

So fügst du deinen API-Schlüssel hinzu:

  1. Öffne die Datei local.properties im Verzeichnis auf Projektebene und füge ihr dann den unten angegebenen Code hinzu. Ersetze hierbei YOUR_API_KEY durch deinen eigenen API-Schlüssel.
    MAPS_API_KEY=YOUR_API_KEY
      
  2. Füge in der Datei build.gradle auf App-Ebene diesen Code im defaultConfig-Element ein. Dadurch kann Android Studio beim Build-Vorgang den Google Maps API-Schlüssel aus der Datei local.properties lesen und anschließend die mapsApiKey-Build-Variable in das Android-Manifest einfügen.
    android {
        defaultConfig {
            // ...
            // Set the properties within `local.properties` into a `Properties` class so that values
            // within `local.properties` (e.g. Maps API key) are accessible in this file.
            Properties properties = new Properties()
            if (rootProject.file("local.properties").exists()) {
                properties.load(rootProject.file("local.properties").newDataInputStream())
            }
    
            // Inject the Maps API key into the manifest
            manifestPlaceholders = [ mapsApiKey : properties.getProperty("MAPS_API_KEY", "") ]
        }
    }
      
  3. Füge in der Datei AndroidManifest.xml folgenden Code als untergeordnetes application-Element hinzu:
    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="${mapsApiKey}" />
        
  4. Speichere die Dateien und synchronisiere dein Projekt mit Gradle.

Hinweis: Für den API-Schlüssel wird der oben angegebene Metadatenname com.google.android.geo.API_KEY empfohlen. Ein Schlüssel mit diesem Namen kann zur Authentifizierung bei mehreren Google Maps-basierten APIs auf der Android-Plattform verwendet werden, einschließlich Maps SDK for Android. Aus Gründen der Abwärtskompatibilität unterstützt die API auch den Namen com.google.android.maps.v2.API_KEY. Für diesen alten Namen wird nur die Authentifizierung bei Version 2 der Android Maps API unterstützt. In der Anwendung kann nur einer der Metadatennamen für den API-Schlüssel festgelegt werden. Falls beide angegeben werden, gibt die API eine Ausnahme aus.

API-Schlüssel einschränken

Wenn du API-Schlüssel einschränkst, wird deine App sicherer und dafür gesorgt, dass nur autorisierte Anfragen gesendet werden. Wir empfehlen dringend, die Einschränkungen für deine API-Schlüssel zu befolgen. Weitere Informationen findest du im englischsprachigen Artikel API Key Best Practices.

So schränkst du einen API-Schlüssel ein:

  1. Wähle in der Cloud Console auf der Seite für die Projektauswahl ein Google Cloud-Projekt aus, für das du einen API-Schlüssel hinzufügen möchtest, oder erstelle ein neues Projekt.

    Zur Projektauswahl

  2. Rufe die Seite APIs & Dienste > Anmeldedaten auf.

    Zur Seite „Anmeldedaten“

  3. Wähle den API-Schlüssel aus, für den du eine Einschränkung festlegen möchtest. Die Seite mit den Eigenschaften des API-Schlüssels wird angezeigt.
  4. Nimm unter Schlüsseleinschränkungen folgende Einstellungen vor:
    • App-Einschränkungen:
      1. Wähle Android-Apps aus.
      2. Klicke auf + Paketname und Fingerabdruck hinzufügen.
      3. Gib den Paketnamen und den Fingerabdruck des SHA-1-Zertifikats ein. Beispiel:
        com.example.android.mapexample
        BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75
        Weitere Informationen dazu erhältst du unter Wo findest du den SHA-1-Fingerabdruck deiner App?.
    • API-Einschränkungen:
      1. Klicke auf Schlüssel einschränken.
      2. Wähle im Drop-down-Menü APIs auswählen die Option Maps SDK for Android aus.
        Wenn das Maps SDK for Android nicht aufgeführt ist, musst du es aktivieren.
  5. Klicke abschließend auf Speichern.

Wo findest du den SHA-1-Fingerabdruck deiner App?

Die Einschränkung des API-Schlüssels für Android basiert auf einer Kurzform des digitalen Zertifikats deiner App, auch bekannt als SHA-1-Fingerabdruck.

Zertifizierungsinformationen aus Android Studio abrufen

Wenn du entsprechend dem Startleitfaden für das Maps SDK for Android vorgehst, wird von Android Studio eine praktische Datei google_maps_api.xml mit den Anmeldedaten deiner App erstellt.

Wähle eine der folgenden Möglichkeiten aus, um deinen API-Schlüssel aus Android Studio abzurufen:

  • Schnell und einfach: Verwende den Link in der Datei google_maps_api.xml, die von Android Studio für dich erstellt wurde:
    1. Kopiere den Link aus der Datei google_maps_api.xml und füge ihn in deinem Browser ein. Über den Link gelangst du zur Google Cloud Console, an die mithilfe von URL-Parametern die erforderlichen Informationen übergeben werden. So musst du weniger manuell eingeben.
    2. Folge der Anleitung, um ein neues Projekt in der Google Cloud Console zu erstellen, oder wähle ein vorhandenes Projekt aus.
    3. Erstelle für dein Projekt einen API-Schlüssel mit Android-Einschränkung.
    4. Kopiere den generierten API-Schlüssel, kehre zu Android Studio zurück und füge den API-Schlüssel in das Element <string> in der Datei google_maps_api.xml ein.
  • Ein etwas zeitaufwendigerer Weg: Verwende die Anmeldedaten in der Datei google_maps_api.xml, die von Android Studio für dich erstellt wurde:
    1. Kopiere die Anmeldedaten aus der Datei google_maps_api.xml.
    2. Rufe die Google Cloud Platform Console auf.
    3. Verwende die kopierten Anmeldedaten, um deine App einem vorhandenen API-Schlüssel hinzuzufügen oder um einen neuen API-Schlüssel zu erstellen.

Zertifikatinformationen selbst beschaffen

Wenn du beim Erstellen der App nicht dem Startleitfaden gefolgt bist, musst du dir den SHA-1-Fingerabdruck für dein Zertifikat selbst beschaffen. Stelle zuerst sicher, dass du das richtige Zertifikat verwendest. Unter Umständen hast du zwei Zertifikate:

  • Debug-Zertifikat: Die Android SDK-Tools generieren dieses Zertifikat automatisch, wenn du ein Debug-Build ausführst. Verwende dieses Zertifikat nur bei Apps, die du testest. Veröffentliche keine Apps, die mit einem Debugzertifikat signiert sind. Das Debugzertifikat wird im Abschnitt zum Signieren im Debugmodus in der Dokumentation für Android-Entwickler näher beschrieben.
  • Freigabezertifikat: Die Android SDK-Tools generieren dieses Zertifikat automatisch, wenn du ein Releasebuild ausführst. Du kannst dieses Zertifikat auch mithilfe des Programms keytool generieren. Verwende dieses Zertifikat, wenn du deine App veröffentlichst.

Befolge die Schritte unten, um den SHA-1-Fingerabdruck eines Zertifikats über das Programm keytool mit dem Parameter -v aufzurufen. Weitere Informationen zu Keytool findest du in der Oracle-Dokumentation.

Debugzertifikat

Fingerabdruck des Debugzertifikats aufrufen

  1. Suche nach deiner Debug-Schlüsselspeicherdatei. Der Dateiname ist debug.keystore. Die Datei wurde angelegt, als du dein Projekt zum ersten Mal erstellt hast. Standardmäßig befindet sich die Datei in demselben Verzeichnis wie deine AVD-Dateien (Android Virtual Device):

    • macOS und Linux: ~/.android/
    • Windows Vista und Windows 7: C:\Users\your_user_name\.android\
  2. SHA-1-Fingerabdruck auflisten:

    • Öffne unter Linux oder macOS ein Terminalfenster und gib Folgendes ein:

      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    • Führe unter Windows Vista und Windows 7 folgenden Befehl aus:

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

Die Ausgabe sollte ungefähr so aussehen:

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
Freigabezertifikat

Fingerabdruck des Freigabezertifikats aufrufen

  1. Suche nach der Schlüsselspeicherdatei deines Freigabezertifikats. Es gibt keinen Standardspeicherplatz oder -namen für den Schlüsselspeicher der Freigabe. Falls du beim Erstellen der App keine Version angibst, wird .apk vom Build nicht signiert. Du musst sie dann vor dem Veröffentlichen signieren. Für das Freigabezertifikat benötigst du auch den Zertifikatsalias und die Kennwörter für den Schlüsselspeicher und das Zertifikat. Du kannst die Aliasnamen für alle Schlüssel in einem Schlüsselspeicher auflisten, indem du Folgendes eingibst:

    keytool -list -keystore your_keystore_name

    Ersetze your_keystore_name durch den vollständig qualifizierten Pfad und Namen des Schlüsselspeichers, einschließlich der Erweiterung .keystore. Du wirst aufgefordert, das Passwort des Schlüsselspeichers einzugeben. Mithilfe von keytool werden dann alle Aliasnamen im Schlüsselspeicher angezeigt.

  2. Gib Folgendes in einem Terminal oder bei einer Eingabeaufforderung ein:

    keytool -list -v -keystore your_keystore_name -alias your_alias_name

    Ersetze your_keystore_name durch den vollständig qualifizierten Pfad und Namen des Schlüsselspeichers, einschließlich der Erweiterung .keystore. Ersetze your_alias_name durch den Alias, den du dem Zertifikat beim Erstellen zugewiesen hast.

Die Ausgabe sollte ungefähr so aussehen:

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

Die Zeile, die mit SHA1 beginnt, enthält den SHA-1-Fingerabdruck des Zertifikats. Der Fingerabdruck ist eine Abfolge aus 20 zweistelligen Hexadezimalzahlen, die durch Doppelpunkte getrennt sind.

Weitere Informationen zu digitalen Zertifikaten findest du in der Android-Anleitung zum Signieren von Apps.