web-dev-qa-db-fra.com

403 API Google statique pour les cartes interdites lors du chargement à partir du tag img

Ce que j'ai est une carte Google qui indique l'emplacement d'une propriété, mais lorsque je viens d'imprimer les cartes dynamiques, l'impression n'est pas aussi bonne que j'ai décidé de mettre en œuvre l'API Google Static Map Image.

http://lpoc.co.uk/properties-for-sale/property/oldgate-dairy-st-james-road-long-sutton-cambridgeshire-pe12/?prop-print=1

^^ est un exemple de propriété en mode d'impression qui doit afficher une image de carte statique, mais il ne parvient pas à se charger. Mon inspecteur obtient alors une réponse 403 Forbiden pour l'image.

Mais si je vais directement à l'URL, l'image se charge ...

Qu'est-ce que je fais mal?

Merci

Scott

22
Brady

Oups, je me sens comme un idiot. J'utilisais l'ancienne URL de l'API de cartes V2 et non la nouvelle URL de l'API V3. Je recevais un 403 parce que j'utilisais l'URL V2 sans fournir de clé API :(

3
Brady

Il semble y avoir une certaine confusion ici, et puisque ce fil est très bien classé sur Google, il semble pertinent de le préciser.

Google a plusieurs API à utiliser pour son service de cartes:

API Javascript

L'ancienne version de cette API était la version 2, qui nécessitait une clé. Cette version est obsolète et il est recommandé de procéder à la mise à niveau vers la version plus récente version 3 . Notez que la documentation indique toujours que vous avez besoin d'une clé pour que cela fonctionne, sauf si vous utilisez "Google Maps API for Business". .

API de cartes statiques

C'est une toute autre histoire. Les cartes statiques est un service qui ne nécessite pas de javascript. Vous appelez simplement une URL et Google renverra une image de carte, ce qui permettra d'insérer l'URL directement dans votre balise <img>. La version la plus récente est version 2 , et nécessite une clé pour fonctionner car une limite d'utilisation est appliquée. 

Une clé peut être demandée ici: Https://code.google.com/apis/console

Et la clé doit être ajoutée à la demande pour que l'image correcte soit générée:

http://maps.googleapis.com/maps/api/staticmap?center=New+York,NY&zoom=13&size=600x300&key=API_console_key

J'espère que cela dissipe une certaine confusion.

14

Cela a eu beaucoup de points de vue, alors j'ajoute ma solution au problème ici:

Lorsque vous utilisez la nouvelle API, assurez-vous de générer une clé pour les applications de navigateur (avec des référents) et que les modèles correspondent à votre URL.

Par exemple. lorsque vous demandez de example.com votre modèle doit être

  example.com/*

Lorsque vous demandez à www.example.com :

  *.example.com/*

Assurez-vous donc de vérifier si un sous-domaine est présent et autorisez les deux modèles dans la console du développeur.

  1. Visitez la Console développeur
  2. Sous API Keys, cliquez sur l'icône du crayon à modifier.
  3. Sous "Restrictions de clé", vérifiez que vous avez une entrée pour example.com/*, *.example.com/* et tous les domaines de test locaux que vous souhaitez.
14
jcfrei

J'ai eu le même problème mais ma solution était différente. J'avais activé l'API de cartes V2, mais pas l'API de cartes statiques (je pensais que c'était la V2). J'ai activé les cartes statiques api et cela a fonctionné.

4
Jonny White

Soyez sûr à cent pour cent de ces points: (pour les cartes statiques)

  1. Activez votre projet à cette URL:

https://console.developers.google.com/apis/api/static_maps_backend/overview?project=

  1. Vous avez votre hôte local, la mise en scène et la production - toutes les URL avec des caractères génériques activées dans la section de référence. 

  2. Google a modifié sa politique et vous avez maintenant besoin d'une clé API pour afficher des cartes. reportez-vous à cela pour plus d'informations: API Google Maps sans clé?

J'espère que ça aide. 

3
daksh_019

Staticmaps V3 n'a pas besoin de l'attribut "Key" et son retrait semble résoudre le problème de source <img>.

Essayez avec une URL comme celle-ci:

http://maps.googleapis.com/maps/api/staticmap?center=0.0000,0.0000&zoom=13&size=200x200&maptype=roadmap&markers=0.0000,0.0000&sensor=false

Pour plus d'informations lisez ceci .

2
Carlos Júlio

Oui, l'API Google Maps version 3 était une version en script Java; "Google Static Maps" était la dernière version 2.0. Je soupçonne qu'il pourrait y avoir une restriction d'utilisation.

1
Avatar Ng

Je ne pouvais pas non plus afficher de cartes statiques et je pouvais voir une erreur 403 dans la console réseau du navigateur.

en-têtes de réponse http:

status:403
x-content-type-options:nosniff

J'avais une clé d'API avec de nombreuses API Google Maps activées, mais le Google Static Maps API était manquant, ce qui a permis de résoudre le problème.

1
PaulH

maintenant vous devriez utiliser le paramètre 'signature', que vous devriez ajouter à la requête - sinon les cartes statiques ne fonctionneront pas. Voici quelques liens utiles

1) comment générer une signature

2) comment créer une signature côté BE (extrait de code)

1
andrey

J'utilise Wordpress 4.9.4 avec le thème ChurchThemes Exodus. J'avais appliqué et généré une nouvelle API_KEY.

Une fois que cela est fait, vos cartes devraient commencer à apparaître sur votre site ou votre application.

S'ils n'apparaissent pas à l'actualisation, vous devrez peut-être:

  • effacez votre cache (webistes Wordpress ou Drupal),
  • attendre les 5 minutes recommandées pour que l'API enregistre les API activées
0
drupalDayz