Places API (New) einrichten

Entwickler im Europäischen Wirtschaftsraum (EWR)

In diesem Dokument werden die Schritte beschrieben, die Sie ausführen müssen, um die Places API (New) zu verwenden.

Vorbereitung

In diesem Verfahren werden Sie durch die Einrichtung eines Google Cloud-Kontos und eines Google Cloud-Projekts mit aktivierter Abrechnung geführt. Außerdem sollten Sie wissen, wie die Nutzung der Places API (New) abgerechnet wird.

  1. Informationen zu Abrechnung und Kosten für die Nutzung finden Sie unter Places API (New) – Nutzung und Abrechnung.
  2. Prüfen Sie, ob Sie ein Google Cloud-Konto haben.

    Melden Sie sich in der Google Cloud Console an.
  3. Prüfen Sie, ob Sie ein Google Cloud-Projekt mit aktivierter Abrechnung haben.

    Zur Seite „Abrechnung“
    1. Wählen Sie Ihr Projekt aus, um die Seite Abrechnung zu öffnen.
    2. Auf der Seite Abrechnung:

      • Wenn die Abrechnung für das ausgewählte Projekt bereits aktiviert ist und Sie nur ein einziges Rechnungskonto haben, wird die Seite Abrechnung geöffnet.
      • Wenn Sie mehrere Rechnungskonten haben, wählen Sie Zum verknüpften Rechnungskonto aus, um die Details zum Rechnungskonto aufzurufen, das mit dem Projekt verknüpft ist.
      • Wenn ein Rechnungskonto vorhanden, aber nicht mit dem Projekt verknüpft ist, werden Sie aufgefordert, ein Rechnungskonto mit dem Projekt zu verknüpfen.
      • Wenn kein Rechnungskonto vorhanden ist oder Sie ein neues Rechnungskonto erstellen möchten, wählen Sie Rechnungskonten verwalten aus, um ein neues Rechnungskonto zu erstellen. Weitere Informationen finden Sie unter Neues Selfservice-Cloud-Rechnungskonto erstellen.

API aktivieren

Bevor Sie die Places API (New) verwenden können, müssen Sie sie in Ihrem Google Cloud-Projekt über die Google Cloud Console oder den Befehl gcloud aktivieren.

So aktivieren Sie die API:

Console

  1. Öffnen Sie die Produktseite in der Google Cloud Console:

    Places API (New) aktivieren
  2. Klicken Sie auf Aktivieren.

gcloud

gcloud services enable \
    --project "PROJECT" \
    "places.googleapis.com"

Weitere Informationen zum Google Cloud SDK, zur Cloud SDK-Installation und zu folgenden Befehlen:

API-Schlüssel für die Places API (New) abrufen

Google Maps Platform-Produkte sind vor unbefugter Nutzung geschützt, da API-Aufrufe entweder einen API-Schlüssel oder ein OAuth-Token enthalten müssen. Zuerst wird der API-Schlüssel erstellt. Wenn Sie stattdessen ein OAuth-Token verwenden möchten, lesen Sie die Informationen unter OAuth-Token erstellen.

Ein API-Schlüssel ist ein eindeutiger alphanumerischer String, über den Ihr Cloud-Rechnungskonto und Ihr Google Cloud-Projekt mit der Anfrage verknüpft werden, die Ihre Anwendung an eine Google Maps Platform API oder ein Google Maps Platform SDK sendet. Folgen Sie dieser Anleitung, um einen neuen Schlüssel zu erstellen oder eine API oder ein SDK zu einem vorhandenen Schlüssel hinzuzufügen.

Console

  1. Rufen Sie die Seite Google Maps Platform > Schlüssel und Anmeldedaten auf.

    Zur Seite „Schlüssel und Anmeldedaten“

  2. Wählen Sie bei Aufforderung Ihr Projekt aus.
  3. Führen Sie einen der folgenden Schritte aus:

    • Neuen Schlüssel erstellen:

      1. Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel.
      2. Öffnen Sie im Bereich API-Schlüssel erstellen die Liste API-Einschränkungen auswählen.
      3. Entfernen Sie alle APIs, die für diesen Schlüssel nicht erforderlich sind, und achten Sie darauf, dass die Places API (New) ausgewählt bleibt.
      4. Klicken Sie auf Erstellen. Im Bereich wird der neue API-Schlüssel angezeigt.
    • Vorhandenen Schlüssel verwenden:

      1. Klicken Sie auf den Namen des Schlüssels.
      2. Wählen Sie in der Liste API-Einschränkungen auswählen die Option Places API (New) aus.
      3. Klicken Sie auf Speichern.

    Wenn Sie hier eine API auswählen, wird sie nicht aktiviert. Prüfen Sie, ob die Places API (New) auf der Seite „API-Bibliothek“ aktiviert ist.

  4. Wenn Sie den Schlüsselstring später sehen möchten, rufen Sie die Seite Schlüssel und Anmeldedaten auf und klicken Sie für den Schlüssel auf Schlüssel anzeigen.

Wenn die Console anders aussieht als in diesen Schritten, finden Sie weitere Informationen in der Google Cloud-Dokumentation unter API-Schlüssel erstellen und API-Einschränkungen hinzufügen.

gcloud

Ersetzen Sie in den folgenden Befehlen PROJECT_ID durch Ihre Projekt-ID.

  • Neuen Schlüssel erstellen: Führen Sie den folgenden Befehl aus und ersetzen Sie DISPLAY_NAME durch einen Namen für den Schlüssel.

    gcloud services api-keys create \
        --project="PROJECT_ID" \
        --display-name="DISPLAY_NAME" \
        --api-target=service=places.googleapis.com

    Weitere Informationen zum Google Cloud SDK, zur Cloud SDK-Installation und zu folgenden Befehlen:

  • Vorhandenen Schlüssel verwenden: Führen Sie den folgenden Befehl aus und ersetzen Sie KEY_ID durch die ID des Schlüssels. Mit dem Flag --append werden die APIs beibehalten, die der Schlüssel bereits zulässt. Ohne diesen Parameter werden sie durch den Befehl ersetzt.

    gcloud services api-keys update KEY_ID \
        --project="PROJECT_ID" \
        --append \
        --api-target=service=places.googleapis.com

    Weitere Informationen zum Google Cloud SDK, zur Cloud SDK-Installation und zu folgenden Befehlen:

    Die Schlüssel-ID ist nicht der Schlüsselstring oder der Anzeigename. Führen Sie gcloud services api-keys list --project="PROJECT_ID" aus, um sie zu finden. Die ID ist der letzte Teil des Felds name: projects/PROJECT_NUMBER/locations/global/keys/KEY_ID.

Führen Sie gcloud services api-keys get-key-string KEY_ID --project="PROJECT_ID" aus, um den Schlüsselstring aufzurufen.

API-Anfrage stellen

Stellen Sie eine Places API (New)-Anfrage, um eine JSON-Antwort für eine Text Search nach dem String „Spicy Vegetarian Food in Sydney, Australia“ zu erhalten. Sie müssen den alphanumerischen String Ihres API-Schlüssels in jede Anfrage einfügen und HTTPS für Anfragen verwenden, die den API-Schlüssel enthalten.

  1. Klicken Sie im Code unten auf API_KEY, um den alphanumerischen String des Schlüssels einzufügen:

    curl -X POST -d '{
      "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
    -H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
    'https://places.googleapis.com/v1/places:searchText'
  2. Klicken Sie im Codebeispiel auf das Kopiersymbol Wählen Sie das Symbol zum Kopieren aus., um den Befehl curl zu kopieren.
  3. Fügen Sie den Befehl in ein Terminalfenster ein und führen Sie ihn aus.

Die Antwort ist ein JSON-Objekt im folgenden Format:

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

Einschränkungen für API-Schlüssel anwenden

Google empfiehlt dringend, die API-Schlüssel einzuschränken, indem Sie ihre Nutzung auf die APIs und Apps beschränken, die sie benötigen. Wenn Sie Ihre API-Schlüssel einschränken, wird Ihre App sicherer und es wird dafür gesorgt, dass nur autorisierte Anfragen gesendet werden. API-Schlüssel unterstützen zwei Arten von Einschränkungen:

  • API-Einschränkungen geben an, welche SDKs und APIs mit dem API-Schlüssel aufgerufen werden können. In der Console und der gcloud CLI ist beim Erstellen eines Schlüssels mindestens eine API-Einschränkung erforderlich.
  • Anwendungseinschränkungen geben an, welche Websites, IP-Adressen oder Anwendungen einen API-Schlüssel verwenden dürfen.

Weitere Informationen zum Anwenden von Einschränkungen finden Sie unter API-Schlüssel einschränken.

OAuth-Token erstellen

Die Places API (New) unterstützt OAuth 2.0 für die Authentifizierung. Google unterstützt gängige OAuth 2.0-Szenarien, z. B. Szenarien für einen Webserver.

In diesem Dokument wird beschrieben, wie Sie in Ihrer Entwicklungsumgebung ein OAuth-Token an einen Places API-Aufruf (New) übergeben. Weitere Informationen zur Verwendung von OAuth in einer Produktionsumgebung finden Sie unter Authentifizierungsmethoden bei Google.

Sie können Google Maps APIs direkt aufrufen, indem Sie API-Anfragen an den Server senden, oder Sie können Clientbibliotheken verwenden, um Ihren Code zu vereinfachen. Google Maps bietet Clientbibliotheken für Go, Java, Node.js und Python. Weitere Informationen finden Sie unter Places API (New) Clientbibliotheken.

OAuth-Übersicht

Je nach Bereitstellungsumgebung können Sie Zugriffstokens mit OAuth auf verschiedene Arten erstellen und verwalten.

Sie können OAuth 2.0 für Server-zu-Server-Interaktionen zwischen Ihrer Anwendung und einem Google-Dienst verwenden. In diesem Szenario verwenden Sie ein Dienstkonto, das mit Ihrer Anwendung und nicht mit einem einzelnen Nutzer verknüpft ist. Sie können API-Anfragen mit dem Dienstkonto stellen, ohne Nutzer direkt einzubeziehen. Weitere Informationen zu Authentifizierungsmethoden finden Sie unter Authentifizierungsmethoden bei Google.

Alternativ können Sie die Places API (New) in eine Android- oder iOS-App einbinden. Weitere Informationen zur Verwendung von OAuth und zur Verwaltung von Zugriffstokens für verschiedene Bereitstellungsumgebungen finden Sie unter OAuth 2.0 für den Zugriff auf Google APIs verwenden.

OAuth-Bereiche

Wenn Sie OAuth mit der Places API (New) verwenden möchten, müssen Sie dem OAuth-Token den folgenden Bereich zuweisen:

https://www.googleapis.com/auth/cloud-platform

Beispiel: REST API-Aufrufe in Ihrer lokalen Entwicklungsumgebung testen

Wenn Sie keine Umgebung haben, in der Tokens generiert werden, und die Places API (New) mit einem OAuth-Token ausprobieren möchten, gehen Sie wie in diesem Abschnitt beschrieben vor.

In diesem Beispiel wird beschrieben, wie Sie das OAuth-Token verwenden, das von Standardanmeldedaten für Anwendungen (Application Default Credentials, ADC) bereitgestellt wird, um den Aufruf auszuführen. Weitere Informationen zur Verwendung von ADC zum Aufrufen von Google APIs mit Clientbibliotheken finden Sie unter Mit Clientbibliotheken authentifizieren.

Verwenden Sie das folgende REST-Verfahren nur für die Entwicklung oder für Tests, nicht für die Produktion.

Vorbereitung

Bevor Sie eine REST-Anfrage mit ADC stellen, verwenden Sie die gcloud-Befehlszeile, um Anmeldedaten für ADC bereitzustellen:

  1. Installieren und initialisieren Sie gcloud CLI. Weitere Informationen finden Sie unter gcloud CLI installieren.

  2. Authentifizieren Sie sich mit der gcloud-Befehlszeile:

    gcloud auth application-default login
  3. Schließen Sie die Anmeldung ab, um Ihre Anmeldedaten in der lokalen Anmeldedatendatei für ADC zu speichern.

Weitere Informationen finden Sie unter Standardanmeldedaten für Anwendungen für eine lokale Entwicklungsumgebung einrichten.

REST-Anfrage stellen

In diesem Beispiel übergeben Sie zwei Anfrageheader:

  • Übergeben Sie das OAuth-Token im Authorization-Header. Verwenden Sie dazu den folgenden Befehl, um das Token zu generieren:

    gcloud auth application-default print-access-token

    Das zurückgegebene Token hat den Bereich https://www.googleapis.com/auth/cloud-platform.

  • Übergeben Sie die ID oder den Namen Ihres Google Cloud-Projekts, für das die Abrechnung im Header X-Goog-User-Project aktiviert ist.

So rufen Sie die Places API (New) mit einem OAuth-Token auf:

  1. Ersetzen Sie im folgenden Codebeispiel PROJECT_ID durch Ihre Google Cloud-Projekt-ID:

    curl -X POST -d '{
    "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
    }' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    -H "X-Goog-User-Project: PROJECT_ID" \
    -H "X-Goog-FieldMask: places.displayName,places.formattedAddress" \
    "https://places.googleapis.com/v1/places:searchText"
  2. Klicken Sie im Codebeispiel auf Kopieren, um den Befehl curl zu kopieren.

  3. Fügen Sie den Befehl in ein Terminalfenster ein und führen Sie ihn aus.

Die Antwort ist ein JSON-Objekt:

{
  "places": [
    {
      "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0",
      "types": [
        "vegan_restaurant",
        "vegetarian_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "nationalPhoneNumber": "0433 479 794",
      "internationalPhoneNumber": "+61 433 479 794",
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "addressComponents": [
        {
          "longText": "29",
          "shortText": "29",
          "types": [
            "street_number"
          ],
          "languageCode": "en-US"
        },
  ...
}

Fehlerbehebung

Wenn Ihre Anfrage eine Fehlermeldung zurückgibt, die angibt, dass diese API keine Endnutzeranmeldedaten unterstützt, finden Sie weitere Informationen unter Fehlerbehebung für die ADC-Einrichtung.

Nächste Schritte

Nachdem Sie die Places API (New) aktiviert und einen API-Schlüssel konfiguriert haben, finden Sie unter Places API (New) weitere Informationen zur Verwendung der Places API (New).