Hinweis
Bevor Sie das Places SDK for Android verwenden können, benötigen Sie ein Projekt mit einem Rechnungskonto und das Places SDK for Android. Weitere Informationen
API-Schlüssel erstellen
Der API-Schlüssel ist eine eindeutige ID. Damit werden die mit Ihrem Projekt verknüpften Anfragen zu Verwendungs- und Abrechnungszwecken authentifiziert. Mit Ihrem Projekt muss mindestens ein API-Schlüssel verknüpft sein.
So erstellen Sie einen API-Schlüssel:
Console
-
Rufen Sie Google Maps Platform > Anmeldedaten auf.
-
Klicken Sie auf der Seite Anmeldedaten auf Anmeldedaten erstellen > API-Schlüssel.
Im Dialogfeld API-Schlüssel erstellt wird der neu erstellte API-Schlüssel angezeigt. -
Klicken Sie auf Schließen.
Der neue API-Schlüssel wird auf der Seite Anmeldedaten unter API-Schlüssel aufgeführt.
Sie müssen den API-Schlüssel einschränken, bevor Sie ihn in der Produktionsumgebung verwenden.
Cloud SDK
gcloud alpha services api-keys create \ --project "PROJECT" \ --display-name "DISPLAY_NAME"
Weitere Informationen zum Google Cloud SDK, zur Cloud SDK-Installation und zu den folgenden Befehlen:
API-Schlüssel einschränken
Google empfiehlt dringend, die API-Schlüssel einzuschränken, indem Sie ihre Nutzung auf die APIs beschränken, die für Ihre Anwendung erforderlich sind. Wenn Sie Ihre API-Schlüssel einschränken, wird Ihre App sicherer und dafür gesorgt, dass nur autorisierte Anfragen gesendet werden. Weitere Informationen finden Sie unter Best Practices für die API-Sicherheit.
Wenn Sie einen API-Schlüssel einschränken, müssen Sie den Fingerabdruck des SHA-1-Zertifikats des Signaturschlüssels angeben, mit dem die App signiert wurde. Es gibt zwei Arten von Zertifikaten:
- Debug-Zertifikat: Verwenden Sie diesen Zertifikatstyp nur mit Apps, die Sie testen, und mit Code, der nicht für die Produktionsumgebung bestimmt ist. Veröffentlichen Sie keine Apps, die mit einem Debug-Zertifikat signiert sind. Es wird von den Android SDK-Tools automatisch generiert, wenn Sie einen Debug-Build ausführen.
- Release-Zertifikat: Verwenden Sie dieses Zertifikat, wenn Ihre App fertig für die Veröffentlichung im App-Shop ist. Es wird von den Android SDK-Tools generiert, wenn Sie einen Release-Build ausführen.
Weitere Informationen zu digitalen Zertifikaten finden Sie im Leitfaden zum Signieren von Apps (in englischer Sprache).
Weitere Informationen zum Abrufen des Fingerabdrucks des Zertifikats finden Sie unter Client authentifizieren (in englischer Sprache). Wenn Sie stattdessen die Funktion Play App-Signatur verwenden, müssen Sie in der Play Console die Seite für die App-Signatur aufrufen, um den Fingerabdruck Ihres Zertifikats zu erhalten.
So schränken Sie einen API-Schlüssel ein:
Console
-
Rufen Sie Google Maps Platform > Anmeldedaten auf.
- Wählen Sie den API-Schlüssel aus, für den Sie eine Einschränkung festlegen möchten. Die Seite mit den Eigenschaften des API-Schlüssels wird angezeigt.
- Nehmen Sie unter Schlüsseleinschränkungen folgende Einstellungen vor:
- App-Einschränkungen:
- Wählen Sie die Option Android-Apps aus.
- Klicken Sie auf + Paketname und Fingerabdruck hinzufügen.
- Geben Sie 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
- API-Einschränkungen:
- Klicken Sie auf Schlüssel einschränken.
- Wähle im Drop-down-Menü APIs auswählen die Option Places API aus. Wenn die Places API nicht aufgeführt ist, musst du sie aktivieren.
- Klicke abschließend auf Speichern.
Cloud SDK
Listen Sie die vorhandenen Schlüssel auf.
gcloud services api-keys list --project="PROJECT"
Löschen Sie die vorhandenen Einschränkungen für einen vorhandenen Schlüssel.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --clear-restrictions
Legen Sie neue Einschränkungen für einen vorhandenen Schlüssel fest.
gcloud alpha services api-keys update "projects/PROJECT/keys/KEY_ID" \ --api_target="places-backend.googleapis.com" --allowed-application="sha1_fingerprint=SHA1_FINGERPRINT,package_name=ANDROID_PACKAGE_NAME"
Weitere Informationen zum Google Cloud SDK, zur Cloud SDK-Installation und zu den folgenden Befehlen:
Zertifikatsinformationen Ihrer App finden
Der API-Schlüssel basiert auf einer Kurzform des digitalen Zertifikats Ihrer App, auch bekannt als SHA-1-Fingerabdruck. Achte darauf, dass du das richtige Zertifikat verwendest, damit der SHA-1-Fingerabdruck für dein Zertifikat angezeigt werden kann. Möglicherweise haben Sie 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.
Gradle verwenden
Mit Gradle ist es sehr einfach, Informationen für die App-Signatur abzurufen. Führen Sie einfach ./gradlew signingReport
aus.
Die Ausgabe sollte in etwa so aussehen:
Task :app:signingReport Variant: debug Config: debug Store: ~/.android/debug.keystore Alias: AndroidDebugKey MD5: 76:4E:BF:C3:59:DA:D3:8F:98:D6:3C:DB:87:A4:5B:E7 SHA1: 99:8E:73:B8:3A:A3:A3:C4:C1:D4:19:08:F6:7E:9E:F6:75:29:4C:B2 SHA-256: 6C:01:12:53:90:94:73:B5:66:D6:07:FF:A5:6F:AB:30:AE:99:20:55:0F:B3:12:22:4C:46:7E:02:3D:7E:6D:1D Valid until: Friday, June 25, 2049 ---------- Variant: release Config: release Store: app/keystore.jks Alias: keystore MD5: 1E:63:0F:14:67:E0:04:BD:98:4C:EB:2B:09:EF:7E:1E SHA1: 2C:DF:9F:D1:A3:0D:1E:01:48:34:5D:91:52:0B:D8:8A:5A:07:45:C3 SHA-256: 12:66:CE:4B:90:FD:64:1A:4D:79:9E:78:AD:59:0C:21:D8:53:61:EE:2B:90:E4:67:CE:65:A0:76:04:13:23:89 Valid until: Tuesday, September 29, 2116
Manuell
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 Debug-Zertifikats aufrufen
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\
- macOS und Linux:
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
-
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 vonkeytool
werden dann alle Aliasnamen im Schlüsselspeicher angezeigt. -
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
. Ersetzeyour_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 SHA1
beginnt, enthält den SHA-1-Fingerabdruck des Zertifikats. Der Fingerabdruck ist eine Abfolge aus 20 zweistelligen Hexadezimalzahlen, die durch Doppelpunkte getrennt sind.