web-dev-qa-db-fra.com

API Google Maps JavaScript RefererNotAllowedMapError

Nous essayons de développer une application de géoplacement pour l'un de nos clients et nous voulons d'abord la tester dans son propre domaine.

Nous avons signé pour l'API JavaScript de Google Maps et nous disposons d'une clé de navigateur valide. Notre domaine, www.grupocamaleon.com, a été autorisé à utiliser cette clé.

Mais nous ne pouvons même pas créer l’exemple le plus simple pour exécuter sans erreur.

Nous avons, dans notre domaine et avec notre clé, la démo suivante:

(1) http://www.grupocamaleon.com/boceto/aerial-simple.html

Mais cela ne fonctionne pas, et la console Firebug dit:

"Erreur API Google Maps: Erreur API Google Maps: RefererNotAllowedMapError (lien vers la documentation Google sur RefererNotAllowedMapError) L'URL de votre site à autoriser: (1)"

Ma page d'informations d'identification manque la possibilité d'ajouter des référents à accepter. Par conséquent, les solutions impliquant l'ajout de référents ne sont pas possibles pour le moment.

Ma page d'identification:

 enter image description here

Pourquoi avons-nous cette erreur? Comment pouvons-nous résoudre ce problème? TIA

86

Je sais que c’est une vieille question qui a déjà plusieurs réponses, mais j’avais le même problème. Pour moi, le problème est que j’ai suivi l’exemple fourni sur console.developers.google.com et que j’ai entré mes domaines au format *.domain.tld/*. Cela ne fonctionnait pas du tout, et j’ai essayé d’ajouter toutes sortes de variations comme domain.tld, domain.tld/*, *.domain.tld etc.

Ce qui l’a résolu pour moi a été d’ajouter aussi le protocole actuel; http://domain.tld/* est le seul dont j'ai besoin pour que cela fonctionne sur mon site. Je suppose que je devrai ajouter https://domain.tld/* si je devais passer à HTTPS.

Mise à jour: Google a enfin mis à jour le paramètre fictif pour inclure http maintenant:

 Google Maps API referrer input field

140
powerbuoy

Selon la documentation, 'RefererNotAllowedMapError' signifie

L’URL en cours de chargement de l’API JavaScript de Google Maps n’a pas été ajouté à la liste des référents autorisés. S'il vous plaît vérifier le référent les paramètres de votre clé API sur la console Google Developers.

L'API Google Maps Embed est configurée pour mon usage personnel/professionnel et, jusqu'à présent, je n'ai spécifié aucun référent HTTP. Je n'enregistre aucune erreur. Selon vos paramètres, Google doit penser que l'URL que vous visitez n'est ni enregistrée ni autorisée.

 enter image description here

16
TRose

Allez, Google, vous êtes plus malins que ne le laisse la page API Credential. (Je sais parce que j'ai deux fils qui travaillent là-bas.)

La liste des "référants" est beaucoup plus sélective qu'elle ne le laisse paraître. (Bien sûr, devrait être plus indulgent.) Voici quelques règles qui m'ont pris heures à découvrir:

Il y a probablement d'autres règles, mais c'est un jeu de devinette fastidieux.

15
Rick James

J'ai essayé de nombreuses variantes de référent et attendu 5 minutes jusqu'à ce que je réalise que l'exemple fourni par Google dans le champ de formulaire est défectueux. Ils montrent:

*.example.com/*

Cependant, cela ne fonctionne que si vous avez subdomain. ou www. devant votre nom de domaine. Ce qui suit a immédiatement fonctionné pour moi (en omettant la période principale de l'exemple de Google):

*example.com/*
14
ow3n

Rappelez-vous simplement que si vous le modifiez, cela peut prendre jusqu'à 5 minutes pour que les paramètres prennent effet. 

9
Putu De

Selon le Google Docs cela est dû au fait que la url sur laquelle vous utilisez l'API Google Maps a été not registered dans list of allowed referrers

MODIFIER : 

De Google Docs

Tous les sous-domaines d'un domaine spécifié sont également autorisés. 

Si http://example.com est autorisé, alors http://www.example.com est également autorisé. L'inverse n'est pas vrai: si http://www.example.com est autorisé, http://example.com n'est pas nécessairement autorisé

Donc, veuillez configurer le domaine http://testdomain.com, votre http://www.testdomain.com commencera à fonctionner.

7
RIYAJ KHAN

Vérifiez que vous avez également activé le bon APIS.

J'ai essayé tout ce qui précède, astérisques, noms de domaine, barres obliques, barres obliques inversées, etc., même en fin de compte, en entrant seulement une URL comme dernier espoir.

Tout cela n'a pas fonctionné et j'ai enfin compris que Google vous demandait également de spécifier quelle API vous souhaitez utiliser (voir capture d'écran).

 enter image description here

Je n'avais pas ceux dont j'avais besoin (pour moi, c'était l'API JavaScript de Maps)

Une fois que je l’ai activé, tout a bien fonctionné avec:

http://www.example.com/ *

J'espère que cela aide quelqu'un! :)

6
David Robertson

J'ai trouvé que même vos HTTP Referreres sont suffisamment valides, un ensemble incorrect de API Restrictions cause Google Maps JavaScript API error: RefererNotAllowedMapError.

Par exemple:

  • Vous utilisez une API Javascript pour la clé.
  • Ajouter http://localhost/* à Application Restrictions / HTTP Referrences
  • Choisissez Maps Embed API au lieu de Maps Javascript API
  • Cela provoque RefererNotAllowedMapError
5
hiroshi

 enter image description here

Accepter les demandes de ces référents HTTP (sites Web)

Ecrire le chemin du répertoire localhost

4
Ayan Chakraborty

Il existe de nombreuses solutions supposées sur plusieurs années, et certaines ne fonctionnent plus et d’autres ne l’ont jamais fonctionné. C’est pourquoi ma mise à jour prend fin juillet 2018.

Installer:

L'API JavaScript de Google Maps doit fonctionner correctement avec…

  • plusieurs domaines appelant l'API: example.com et example.net
  • sous-domaines arbitraires: user22656.example.com, etc.
  • protocoles HTTP sécurisés et standard: http://www.example.com/ et https://example.net/
  • structure de chemin indéfinie (c'est-à-dire un grand nombre de chemins d'URL différents)

Solution:

  • En fait, en utilisant le modèle de l'espace réservé: <https (or) http>://*.example.com/*.
  • N'omettez pas le protocole, mais ajoutez deux entrées par domaine (une par protocole).
  • Une entrée supplémentaire pour les sous-domaines (avec un *. précédant le nom d'hôte).
  • J'ai eu le sentiment que l'erreur RefererNotAllowedMapError apparaissait toujours avec la configuration appropriée (et après avoir attendu suffisamment longtemps). J'ai supprimé la clé d'identification, répété la demande (maintenant InvalidKeyMapError), créé de nouvelles informations d'identification (en utilisant exactement la même configuration) et cela a fonctionné depuis.
  • Ajouter un simple protocole et un domaine ne semblait pas avoir inclus les sous-domaines.
  • Pour l'un des domaines, la configuration de travail ressemble à ceci:

 Screenshot from Google API configuration

_ {(Comme texte :)

Accept requests from these HTTP referrers (web sites)
    https://*.example.com/*
    https://example.com/*
    http://*.example.com/*
    http://example.com/*
4
dakab

vous montrez une capture d’écran de votre page d’identifications d’API, mais vous devez cliquer sur «Clé du navigateur 1» et, à partir de là, ajouter des référents.

3
ITwrx

J'ajoute 2 domaines de site Web. Le groupe "*" du sous-domaine ne fonctionne pas, mais des sous-domaines spécifiques "WWW" et des sous-domaines ont été définis pour mes sites Web à l'aide de la même clé API Google Map.

N'utilisez pas "*" dans le sous-domaine

J'espère que ça vous aidera.

2
Pare

J'ai eu la même erreur:

 enter image description here

Ce lien explique comment configurer les restrictions de clés d’API: https://cloud.google.com/docs/authentication/api-keys#adding_http_restrictions

Dans mon cas, le problème était que j'utilisais cette restriction: 

Référents HTTP (sites Web) Acceptez les demandes de ces référents HTTP (sites Web) (Facultatif) Utilisez * pour les caractères génériques. Si vous laissez ce champ vide, les demandes seront acceptées par n'importe quel parrain. Assurez-vous d'ajouter des référents avant d'utiliser cette clé en production . https://*.example.net/*

Cela signifie que des URL telles que https://www.example.net ou https://m.example.net ou https://www.example.net/San-salvador/ travaillerait. Toutefois, des URL telles que https://example.net ou https://example.net ou https://example.net/San-salvador/ ne fonctionneraient pas. J'avais simplement besoin d'ajouter un deuxième référent:

https://example.net/*

Cela a résolu le problème pour moi.

2
Jaime Montoya

Pour les pages imbriquées plus profondes

Si vous avez un projet dans un dossier par exemple ou des pages imbriquées

http://yourdomain.com/your-folder/your-page vous pouvez entrer ceci dans

http://yourdomain.com/*/*

La partie importante étant /*/*/* en fonction de la distance à parcourir

Il semble que le * ne corresponde pas à / ni n'aille dans des chemins plus profonds.

Cela vous donnera un accès complet à votre domaine, sauf si vous avez une imbrication plus profonde que cela.

2
Radmation

Ceci est un autre produit Google Sh1tty avec une implémentation terrible.

Le problème que j'ai trouvé avec ceci est que si vous limitez une clé API par adresse IP, cela ne fonctionnera pas ... MAIS, bien que ce soit de Google de préciser ce point ... Ce n'est qu'après le dépannage et la recherche que j'ai trouvé:

Les clés API avec une restriction d'adresses IP ne peuvent être utilisées qu'avec des services Web destinés à être utilisés côté serveur (tels que l'API de géocodage et d'autres API de services Web). La plupart de ces services Web ont des services équivalents dans l'API JavaScript de Maps (voir, par exemple, le service de géocodage). Pour utiliser les services côté client de l'API JavaScript de Maps, vous devez créer une clé API distincte pouvant être sécurisée avec une restriction de référents HTTP (voir la section Restriction d'une clé API).

https://developers.google.com/maps/documentation/javascript/error-messages

FFS Google ... C'est une information assez importante qu'il serait bon de clarifier sur la configuration ...

2
php-b-grader

Les miens ont finalement fonctionné en utilisant ce conseil de Google: ( https://support.google.com/webmasters/answer/35179 )

Voici nos définitions de domaine et de site. Ces définitions sont spécifiques à la vérification de la console de recherche:

http://example.com/ - A site (because it includes the http:// prefix)
example.com/ - A domain (because it doesn't include a protocol prefix)
puppies.example.com/ - A subdomain of example.com
http://example.com/petstore/ - A subdirectory of http://example.com site
2
jmm

Supprimer les restrictions (à Aucune) a fonctionné pour moi. 

1
Robot Boy
  1. Que votre facturation est activée

  2. Que votre site Web a été ajouté à Google Console

  3. Que votre site Web soit ajouté aux référents de votre application.

  4. (faire un wildcard pour www et aucun www)

http://www.example.com/ * et http://example.com/ *

  1. Javascript Maps est activé et que vous utilisez les informations d'identification correctes

  2. Que le site Web a été ajouté à votre DNS pour activer votre console Google ci-dessus.

  3. Souriez après que cela fonctionne!

1
Morris

Aucune de ces corrections ne fonctionnait pour moi jusqu'à ce que je découvre que RefererNotAllowedMapError peut être causé par l'absence d'un compte de facturation lié au projet. Assurez-vous donc d'activer votre essai gratuit ou autre.

1
Owen Masback

J'ai eu du mal à faire en sorte que cela fonctionne aussi, mais voici quelques indications:

  • Les URL définies comme référents incluent http, par exemple. http://example.com/*
  • L'API JavaScript de Google Maps a été activée.
  • La facturation a été configurée sur ce compte

Une fois que tout ceci a été résolu, les cartes s’affichent comme prévu.

1
FMCorz

http://www.example.com/ * a fonctionné pour moi après des jours et des jours de tentatives.

1
Shingai Munyuki

Les caractères génériques (astérisques) NE SONT PAS autorisés sur les sous-domaines. 

  • FAUX: * .exemple.com/*
  • DROIT: exemple.com/*

Oubliez ce que Google dit dans l'espace réservé, cela n'est pas autorisé.

0
Daniel Loureiro

J'essayais d'utiliser API Places (Autocomplete) et devais également activer le API Javascript Maps depuis la console Google Cloud avant que l'API Places ne fonctionne.

0
braed

La console Javascript de Chrome a suggéré de déclarer l'adresse complète de la page dans ma liste de référents HTTP, dans cet exemple http://mywebsite.com/map.htm Même si l'adresse exacte est http: //www.mywebsite. com/map.htm - J'avais déjà les styles génériques listés comme suggéré par d'autres, mais c'était la seule façon dont cela fonctionnerait pour moi.

0
KJB

Vérifiez votre déclaration sur site. Pour charger l'API JavaScript de Google Maps, utilisez une balise de script comme celle-ci. 

<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"
async defer></script>

J'utilise cette déclaration sur mon site Wordpress dans le fichier function.php

wp_enqueue_script("google-maps-v3", "//maps.google.com/maps/api/js?key=YOUR_API_KEY", false, array(), false, true);

J'ai défini la clé API sur ce format, et cela fonctionne bien

http://my-domain-name(without www).com/*

cette déclaration ne fonctionne pas

*.my-domain-name.com/*
0
Nalaskow

Dans mon expérience

http://www.example.com

a bien fonctionné mais, https requis/* à la fin

0
RationalRabbit