Résoudre les problèmes liés à l'autorisation des URL pour le forfait Premium API Google Maps

Où gérer votre ID client dans Google Cloud Console ?

La fonctionnalité de gestion des ID client du forfait Premium est transférée du portail d'assistance vers Cloud Console sur la page "Identifiants" de Maps, dans la section Comptes de service.

Nouvelle zone des ID client sur la page "Identifiants"

Remarque : Il n'est plus possible de s'inscrire au forfait Premium Google Maps Platform, qui n'est plus disponible non plus pour les nouveaux clients.

Les ID client du forfait Premium Google Maps Platform sont limités aux URL spécifiquement autorisées. Si vous essayez d'utiliser votre ID client sur une URL qui n'a pas été autorisée, vous recevrez un message d'erreur.

Cet article est destiné aux clients du forfait Premium Google Maps Platform qui rencontrent ce problème et ont besoin de trouver l'URL exacte à autoriser.

Principes de base

Pour empêcher des tiers d'utiliser votre ID client sur leur propre site Web, l'utilisation de votre ID client est limitée à une liste d'URL que vous devez autoriser. Chaque URL peut être aussi spécifique qu'une simple page Web ou aussi générique qu'un domaine entier.

Pour obtenir la liste de vos URL autorisées ou pour autoriser d'autres URL, accédez à la page Identifiants, puis faites-la défiler jusqu'à la section ID client.

Vous pouvez ajouter jusqu'à 100 URL à la fois. Un ID client peut être associé à 3 000 URL autorisées au maximum. Si vous prévoyez que votre application héberge du contenu Google Maps provenant de plus de 3 000 emplacements, utilisez plutôt des clés API.

Pour en savoir plus sur l'autorisation des URL, consultez le guide du développeur.

Le problème

Une application qui réside sur une URL n'ayant pas été autorisée pour votre ID client ne pourra pas utiliser Google Maps Platform avec votre ID client. Une personne qui tente d'utiliser une telle application recevra un message d'erreur, selon l'API spécifique que l'application essaye de charger. Les utilisateurs ne pourront pas utiliser les fonctionnalités qui dépendent de l'API Maps JavaScript.

  • L'API Maps JavaScript affichera le message suivant :

    This page was unable to display a Google Maps element. This URL is not authorized to use the provided Google Maps Client ID. Error Code: UnauthorizedURLForClientIdMapError (Cette page n'a pas pu afficher d'élément Google Maps. Cette URL n'est pas autorisée à utiliser l'ID client Google Maps fourni. Code d'erreur : UnauthorizedURLForClientIdMapError.)

  • Si vous utilisez l'API Maps JavaScript version 3.18 ou ultérieure, le message suivant s'affiche :

    Google has disabled use of the Google Maps Platform for this application. This site is not authorized to use the Google Maps client ID provided. If you are the owner of this application, you can learn more about registering URLs in the developer's guide.. (Google a désactivé l'utilisation de Google Maps Platform pour cette application. Ce site n'est pas autorisé à utiliser l'ID client Google Maps fourni. Si vous êtes propriétaire de cette application, vous trouverez plus d'informations sur l'enregistrement des URL dans le guide du développeur.)

Supprimer l'ID client de l'application n'est pas une solution valable*. En effet, vous perdriez tous les avantages offerts par le forfait Premium Google Maps Platform pour cette application. Ainsi, vous n'auriez plus droit :

  • à un contrat de niveau de service solide ;
  • à l'assistance client ;
  • à l'augmentation des limites sur les services Web ;
  • aux conditions générales de niveau commercial ;
  • à l'assistance pour les applications intranet sur votre lieu de travail.

Par conséquent, les applications uniquement destinées à un usage interne ou non gratuites, et qui n'utilisent pas correctement un ID client valide du forfait Premium Google Maps Platform ne seront pas conformes aux Conditions d'utilisation standards de Google Maps Platform.

La solution

La meilleure solution est de trouver les bonnes URL et de les autoriser à utiliser votre ID client.

Dans la plupart des cas, vous devez autoriser une application à utiliser votre ID client. Les applications utilisent souvent plusieurs URL qui partagent un format commun. Un outil de localisation de magasins, par exemple, peut utiliser l'URL example.com/stores ou stores.example.com. Vous devez trouver une URL qui correspond à toutes les URL utilisées par votre application.

Remarque : Autoriser www.example.com ne revient pas à autoriser stores.example.com ni aucun autre sous-domaine de example.com.

Chaque URL que vous autorisez peut être aussi spécifique qu'une simple page Web ou aussi générique qu'un domaine entier, avec tous ses sous-domaines. Pour en savoir plus, consultez le guide du développeur. Nous vous recommandons d'autoriser des URL qui correspondent à un ensemble assez large d'URL, à condition de les administrer.

Remarque : Nous vous déconseillons d'autoriser un domaine complet sauf si votre organisation exerce un contrôle total sur l'ensemble du contenu de ce domaine. Par exemple, autoriser l'ensemble du domaine blogspot.com permet à tout le monde d'utiliser votre ID client, à vos frais, depuis ce domaine. Vous devez plutôt n'autoriser qu'un blog spécifique, (par exemple, googlegeodevelopers.blogspot.com) ou même une page précise de ce blog.

Comment trouver la bonne URL ?

L'URL se trouve normalement dans la barre d'adresse de votre navigateur. Sur les sites Web publics qui n'utilisent pas de balises <iframe>, il est en général assez facile de les trouver. En cas de doute, vous pouvez utiliser l'approche ci-dessous pour vérification.

Les applications complexes peuvent charger Google Maps Platform à partir d'une URL différente de celle figurant dans la barre d'adresse de l'utilisateur. C'est le cas avec les balises <iframe> ou lorsque l'URL de la page qui charge les API est générée dynamiquement sur le serveur avant d'être envoyée au navigateur. Dans ce cas, la recherche des URL adéquates nécessite d'inspecter certaines requêtes HTTP du navigateur vers les serveurs Google.

L'URL à autoriser se trouve dans l'en-tête Referer des requêtes que le navigateur envoie à Google pour charger l'API. Chaque API est chargée à partir d'une URL distincte :

Toutes les requêtes vers maps.googleapis.com peuvent être envoyées à maps.google.com ou à maps-api-ssl.google.com, selon la façon dont l'application est configurée pour charger l'API. Par conséquent, pour rechercher les requêtes ci-dessus, c'est généralement le chemin d'accès (en gras) qui est important.

À partir des en-têtes HTTP dans votre navigateur

Pour pouvoir inspecter l'en-tête Referer dans les requêtes ci-dessus, vous devez d'abord les enregistrer dans votre navigateur. Plusieurs outils sont disponibles gratuitement pour enregistrer des en-têtes HTTP dans les principaux navigateurs :

Remarque : Vous devez configurer Fiddler2 pour pouvoir enregistrer le trafic HTTPS. Pour en savoir plus, cliquez ici.

Si vous ne parvenez pas à enregistrer des en-têtes HTTP directement dans le navigateur, vous pouvez essayer d'enregistrer le trafic HTTP à l'aide d'un outil d'analyse de protocole réseau comme Wireshark. Cet outil peut être plus complexe à manipuler que ceux énoncés précédemment. N'hésitez pas à consulter les tutoriels Wireshark pour savoir comment il fonctionne.

Après avoir choisi votre outil, procédez comme suit pour trouver l'URL à autoriser :

  1. Démarrez l'outil d'enregistrement et assurez-vous qu'il enregistre les requêtes HTTP provenant de votre navigateur.
  2. Dirigez votre navigateur vers l'application qui ne parvient pas à charger Google Maps Platform à l'aide de votre ID client. Vous devriez recevoir l'un des messages d'erreur décrits ci-dessus.
  3. Arrêtez d'enregistrer le trafic HTTP afin d'analyser plus facilement le trafic enregistré.
  4. Recherchez la requête qui tente de charger Google Maps Platform à l'aide de votre ID client. Par exemple, si votre application tente de charger l'API Maps JavaScript, recherchez une requête qui se présente comme suit :
    GET /maps/api/js?client=gme-yourclientid HTTP/1.1
  5. Les en-têtes de requêtes HTTP se trouvent juste après cette ligne, sans saut de ligne. Recherchez-en une semblable à celle-ci :
    Referer: http://www.example.com/stores/find?zip=94043
  6. L'URL de cette ligne est celle qui doit être autorisée à utiliser votre ID client.

À partir de la console JavaScript dans votre navigateur

Si vous utilisez votre clé API ou votre ID client sur un site non autorisé, l'API Maps JavaScript génère des messages d'erreur dans window.console. L'URL appropriée se trouve dans le message d'erreur. Dans la console, recherchez les messages d'erreur qui se présentent comme suit :

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

Pour savoir comment identifier les messages d'erreur, consultez la section sur la vérification des erreurs dans le navigateur.

Identifier le format commun

Pour vous assurer que toute l'application pourra charger Google Maps Platform à l'aide de votre ID client, vous devez identifier le format commun à toutes les URL que l'application utilise et autoriser une URL qui représente ce format. Pour ce faire, suivez les règles expliquées dans le guide du développeur.

Il s'agit souvent d'un simple répertoire (par exemple, example.com/stores) ou d'un sous-domaine (par exemple, stores.example.com), que l'on peut trouver facilement à partir de quelques URL.

Dans le cas d'applications complexes, vous pouvez être amené à répéter les étapes ci-dessus avec quelques URL destinées aux utilisateurs qui affichent une carte. Cela peut toutefois s'avérer très fastidieux et aboutir à un jeu d'URL incomplet. Pour ce type d'application, ce sont probablement leurs développeurs qui sont les mieux à même de fournir le format d'URL.