70 votes

Clé d'API Les clés d'API du navigateur ne peuvent pas avoir de restrictions de référent lorsqu'elles sont utilisées avec cette API

Je suis en train de programme de géocodage. J'ai créé une clé API, mais quand je l'ajoute dans mon code du site, je ne suis pas d'obtenir quoi que ce soit, cependant lorsque je n'utilise pas l'API, tout fonctionne bien. Quand j'envoie:

https://maps.googleapis.com/maps/api/geocode/json?address=".$adres."&key=KLUCZ_XXX

Je reçois une réponse:

Browser API keys cannot have referer restrictions when used with this API.

Si j'utilise:

https://maps.googleapis.com/maps/api/geocode/json?address=".$adres" 

Le résultat est correct, mais le nombre de requêtes est limité par jour.

Contrainte de clé: les redirections HTTP (Web) - défini sur le domaine à partir duquel évoquer enquête. L'Interface de Google Maps API de Géocodage est allumé.

La clé de l'API doit être activé aussi quelque part d'autre pour travailler?

116voto

Raymond Points 599

Il semble que vous pouvez être procéder à l'appel d'API côté serveur. Je suis tombé sur cette question plus tôt aujourd'hui. Depuis que vous avez placé un référent de restriction sur votre clé API, elle sera limitée à l'exécution sur le navigateur avec l'Api de service web, y compris les API de Géocodage. Il n'a pas de travail pour moi, même lorsque la configuration manuelle de l'référent dans les en-têtes de requête. Vous pouvez trouver les autres Api de service web sur cette page: https://developers.google.com/maps/web-services/

Important: Si vous utilisez l'un de l'Api de service web avec une clé API qui a referer restrictions, vos demandes échoue avec le message d'erreur: "la clef API ne peut pas avoir referer restrictions lorsqu'il est utilisé avec cette API." Vous devez passer à l'aide d'un serveur de restriction.

Vous aurez envie de créer une clé séparée pour utiliser le serveur-côté. Vous pouvez modifier votre restriction à partir d'un navigateur restriction à un serveur de restriction en utilisant des adresses IP pour limiter l'accès, au lieu de navigateur de points d'accès.

Cette section présente dans l'Api Maps FAQ sur la touche de sélection de type d'un serveur de clé restreint: https://developers.google.com/maps/faq#switch-key-type

Alternativement, vous pouvez continuer à utiliser un navigateur clés et de géocodage côté client (JavaScript), puis retourner le résultat à le backend via ajax.

8voto

Slash Points 16

Si côté serveur géocodage n'est pas une option, vous devez utiliser le geocoder de la Google API Javascript. Vous pouvez définir HTTP referer restrictions sur l'API.

Google dit elle-même afin d'éviter la Non-Javascript Geocoder API pour la dynamique de géocodage:

Ce service est généralement conçu pour le géocodage statique (connu à l'avance) des adresses pour le placement de contenu de l'application sur un carte; ce service n'est pas conçu pour répondre en temps réel à l'utilisateur d'entrée. Pour la dynamique de géocodage (par exemple, au sein d'une interface utilisateur élément), consultez la documentation de l'Maps JavaScript API client geocoder et/ou le Google Play services de l'Emplacement de l'Api.

0voto

Shawn Points 204

Dans vos informations d'identification du tableau de bord de l'API Google, vous devez ajouter une exception pour

 https://*.google.com/*
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X