Fehlerbehebung im Zusammenhang mit der Autorisierung von URLs für die Google Maps Platform-Premiumoption

Verwaltung deiner Client-ID in der Google Cloud Console

Die Funktion zur Verwaltung der Client-ID für die Premiumoption wird vom Supportportal in die Cloud Console verlagert (Maps-Seite „Anmeldedaten“, Bereich Dienstkonten).

Der neue Client-ID-Bereich auf der Seite „Anmeldedaten“

Hinweis: Du kannst dich nicht mehr für die Google Maps Platform-Premiumoption registrieren. Auch für Neukunden ist sie nicht mehr verfügbar.

Client-IDs der Google Maps Platform-Premiumoption sind auf speziell autorisierte URLs beschränkt. Wenn du versuchst, deine Client-ID für eine URL zu verwenden, die nicht autorisiert wurde, erhältst du eine Fehlermeldung.

Dieser Artikel richtet sich an Kunden mit Google Maps Platform-Premiumoption, bei denen dieses Problem auftritt und die die genaue URL ermitteln müssen, die autorisiert werden muss.

Grundlagen

Um zu verhindern, dass deine Client-ID durch Dritte auf deren eigener Website genutzt wird, ist deine Client-ID auf eine Liste von URLs beschränkt, die du autorisieren musst. Eine URL kann sowohl spezifisch als auch generisch sein (das heißt, auf eine einzelne Webseite oder eine ganze Domain verweisen).

Wenn du eine Liste der autorisierten URLs abrufen oder weitere URLs autorisieren möchtest, rufe die Seite Anmeldedaten auf und scrolle zu Client-ID.

Du kannst bis zu 100 URLs gleichzeitig hinzufügen. Eine Client-ID kann mit bis zu 3.000 autorisierten URLs verknüpft werden. Wenn du davon ausgehst, dass deine Anwendung Google Maps-Inhalte von mehr als 3.000 Standorten hostet, solltest du stattdessen auf API-Schlüssel umstellen.

Weitere Informationen zum Autorisieren von URLs findest du im Entwicklerhandbuch.

Das Problem

In einer Anwendung, die sich unter einer URL befindet, die nicht für deine Client-ID autorisiert wurde, kann die Google Maps Platform nicht mit deiner Client-ID verwendet werden. Ein Nutzer, der versucht, eine solche Anwendung einzusetzen, erhält abhängig von der spezifischen API, die in die Anwendung geladen werden soll, eine Fehlermeldung. Nutzer können keine Funktionen verwenden, die von der Maps JavaScript API abhängen.

  • In der Maps JavaScript API wird diese Meldung angezeigt:

    Auf dieser Seite konnte kein Google Maps-Element angezeigt werden. Die bereitgestellte Google Maps-Client-ID konnte für diese URL nicht verwendet werden. Fehlercode: UnauthorizedURLForClientIdMapError

  • Wenn du Version 3.18 oder niedriger der Google Maps JavaScript API verwendest, wird diese Meldung angezeigt:

    Google hat die Verwendung von Google Maps Platform für diese Anwendung deaktiviert. Diese Website ist nicht autorisiert, die bereitgestellte Google Maps-Client-ID zu verwenden. Wenn du der Inhaber dieser Anwendung bist, findest du weitere Informationen zur Registrierung von URLs im Entwicklerhandbuch.

Das Entfernen der Client-ID aus der Anwendung ist keine zulässige Problemlösung.* Du verlierst dadurch alle mit der Google Maps Platform-Premiumoption erteilten Rechte für die betreffende Anwendung. Das bedeutet, du verlierst deinen Anspruch auf:

  • Ein solides Service-Level-Agreement (SLA)
  • Kundensupport
  • Höhere Grenzwerte für Webdienste
  • Handelsübliche Geschäftsbedingungen
  • Support für Intranetanwendungen an deinem Arbeitsplatz

Das bedeutet, dass interne oder kostenpflichtige Anwendungen, die eine gültige Client-ID für die Google Maps Platform-Premiumoption nicht korrekt nutzen, nicht im Einklang mit den standardmäßigen Nutzungsbedingungen für Google Maps Platform stehen.

Die Lösung

Die korrekte Lösung dieses Problems besteht darin, die richtigen URLs, für die deine Client-ID genutzt werden sollen, zu ermitteln und zu autorisieren.

In den meisten Fällen musst du eine Anwendung autorisieren, deine Client-ID zu nutzen. Für Anwendungen werden häufig mehrere URLs mit einem gemeinsamen Muster verwendet, z. B. kann eine Filialsuche unter example.com/stores oder stores.example.com verfügbar sein. Du musst eine URL finden, die mit allen URLs übereinstimmt, die für deine Anwendung verwendet werden.

Hinweis: Durch die Autorisierung von www.example.com wird stores.example.com oder eine andere Subdomain von example.com nicht autorisiert.

Eine von dir autorisierte URL kann sowohl spezifisch als auch generisch sein (das heißt, auf eine einzelne Webseite oder eine ganze Domain einschließlich ihrer Subdomains verweisen). Weitere Informationen findest du im Entwicklerhandbuch. Wir empfehlen die Autorisierung von URLs, die einer recht umfangreichen Gruppe von URLs entsprechen, solange sie von dir verwaltet werden.

Hinweis: Die Autorisierung einer vollständigen Domain wird nur empfohlen, wenn deine Organisation die vollständige Kontrolle über den gesamten Inhalt dieser Domain besitzt. Beispielsweise erhält durch die Autorisierung der gesamten Domain blogspot.com jeder Nutzer die Möglichkeit, auf deine Kosten deine Client-ID in dieser Domain zu nutzen. Stattdessen solltest du einen bestimmten Blog autorisieren, z. B. googlegeodevelopers.blogspot.com oder sogar eine bestimmte Seite in diesem Blog.

So ermittelst du die richtige URL

Normalerweise findest du die URL in der Adressleiste deines Browsers. Auf öffentlichen Websites, auf denen keine <iframe>-Tags verwendet werden, ist das normalerweise einfach. Im Zweifelsfall kannst du das auf die folgende Weise prüfen.

In komplexen Anwendungen wird die Google Maps Platform ggf. über eine andere URL als die in der Zielleiste des Nutzers geladen. Das ist der Fall, wenn <iframe>-Tags verwendet werden oder wenn die URL der Seite, die die APIs lädt, dynamisch auf dem Server generiert und dann an den Browser gesendet wird. Um in diesen Fällen die richtige URL zu finden, müssen bestimmte HTTP-Anfragen untersucht werden, die vom Browser an die Google-Server gesendet werden.

Die zu autorisierende URL ist die URL im Referer-Header für die Anfragen, die der Browser zum Laden der API an Google sendet. Jede API wird über eine andere URL geladen:

Je nachdem, wie die Anwendung zum Laden der API konfiguriert ist, können alle Anfragen an maps.googleapis.com an maps.google.com oder maps-api-ssl.google.com gesendet werden. In den Anfragen oben ist daher normalerweise der Pfad (fett formatiert) die Information, auf die es ankommt.

Über die HTTP-Header im Browser

Bevor du den Referer-Header in den Anfragen oben prüfen kannst, musst du sie zuerst über den Browser erfassen. In allen gängigen Browsern stehen verschiedene kostenlose Tools zum Erfassen von HTTP-Headern zur Verfügung:

Hinweis: Du musst Fiddler2 konfigurieren, um HTTPS-Traffic zu erfassen. Weitere Informationen

Falls du HTTP-Header nicht direkt im Browser erfassen kannst, kannst du versuchen, den HTTP-Traffic über ein Tool zur Analyse von Netzwerkprotokollen (z. B. Wireshark) aufzuzeichnen. Dieses Tool ist hinsichtlich seiner Funktionsweise möglicherweise komplexer als die oben genannten Tools. Falls du nicht damit vertraut bist, findest du im Internet einige Anleitungen zu Wireshark.

Führe dann im Tool deiner Wahl die folgenden Schritte aus, um die zu autorisierende URL zu ermitteln:

  1. Starte das Erfassungstool. Kontrolliere, ob HTTP-Anfragen über den Browser erfasst werden.
  2. Verweise im Browser auf die Anwendung, die von Google Maps Platform nicht über deine Client-ID geladen werden kann. Du solltest eine der oben beschriebenen Fehlermeldungen erhalten.
  3. Beende das Erfassen des HTTP-Traffics. So lässt sich der erfasste Traffic leichter untersuchen.
  4. Ermittle die Anfrage, mit der versucht wird, Google Maps Platform mithilfe deiner Client-ID zu laden. Beispiel: Wenn die Anwendung versucht, die Maps JavaScript API zu laden, suche nach einer Anfrage wie der folgenden:
    GET /maps/api/js?client=gme-yourclientid HTTP/1.1
  5. Unmittelbar nach dieser Zeile folgen HTTP-Anfrageheader ohne Zeilenumbruch. Suche nach einem Header ähnlich dem folgenden:
    Referer: http://www.example.com/stores/find?zip=94043
  6. Die URL in dieser Zeile muss für die Verwendung deiner Client-ID autorisiert werden.

Über die JavaScript-Konsole im Browser

Wenn du den API-Schlüssel oder die Client-ID in einer nicht autorisierten Website verwendest, schreibt die Maps JavaScript API Fehlermeldungen in window.console. Die korrekte URL findest du in der Fehlermeldung. Suche in der Konsole nach Fehlermeldungen, die der folgenden ähneln:

Google Maps Platform error: UnauthorizedURLForClientIdMapError ...
Your site URL to be authorized: http://www.example.com/stores/find?zip-94043

Informationen für die Suche nach Fehlermeldungen findest du im Abschnitt Fehler im Browser überprüfen.

Gemeinsames Muster finden

Um sicherzustellen, dass die gesamte Anwendung Google Maps Platform mithilfe deiner Client-ID laden kann, musst du ein gemeinsames Muster bei allen von der Anwendung verwendeten URLs finden und eine URL autorisieren, die dieses Muster repräsentiert. Befolge hierfür die im Entwicklerhandbuch erläuterten Regeln.

Häufig ist das einfach ein Verzeichnis (z. B. example.com/stores) oder eine Subdomain (z. B. stores.example.com), die sich oft problemlos aus einigen URLs ableiten lassen.

Bei komplexen Anwendungen musst du die Schritte oben möglicherweise mit einer Reihe von nutzerseitigen URLs wiederholen, mit denen eine Karte angezeigt wird. Diese Vorgehensweise ist jedoch unter Umständen zu aufwendig und führt möglicherweise dennoch nicht zu einer vollständigen Gruppe von URLs. Für eine solche Anwendung wird empfohlen, das URL-Muster von den Entwicklern der Anwendung zu erfragen.