Chiave API di Googlemaps per Localhost


94

Come faccio a far funzionare la chiave API di Googlemap su localhost?

Ho creato una chiave API e in referers aggiungo quanto segue:

Accept requests from these HTTP referrers (websites) (Optional)

Use asterisks for wildcards. If you leave this blank, requests will be 
accepted from any referrer. Be sure to add referrers before using this key 
in production. 

localhost

Questo non funziona e se escludo la chiave api non funziona neanche?


Risposte:


137
  1. Vai a questo indirizzo: https://console.developers.google.com/apis
  2. Crea una chiave API per il tuo progetto
  3. Fare clic su "Libreria"
  4. Fare clic su qualsiasi API desiderata
  5. Fare clic su "Abilita" (in alto a destra)
  6. Fare clic su "Credenziali"> "Modifica chiave"
  7. In "Restrizione chiave", seleziona "Referrer HTTP (siti web)"
  8. Digita l'indirizzo del tuo sito web (o "localhost", "127.0.0.1", "localhost: port" ecc. Per i test locali) nel campo di testo e premi ENTERper aggiungerlo all'elenco
  9. Usa la tua chiave nel tuo progetto

9
Questo è quello che ho fatto anch'io, ma mi chiedo: questo significa che CHIUNQUE lavori localmente (localhost / 127.0.0.1) potrebbe utilizzare la mia API KEY (e possibilmente dedurre i costi per me dopo che si sono verificati i nuovi prezzi dell'11-06-2018 ?)
tmanolatos

35
@tmanolatos Sì, questo è ciò che significa. Non è buona norma concedere alla chiave di produzione i diritti di localhost, poiché chiunque può utilizzare la chiave durante l'esecuzione in locale. Invece dovresti mantenere due chiavi. Uno per la produzione che può essere visto da chiunque e quindi dovrebbe essere consentito solo sul tuo dominio. Uno per lo sviluppo che dovrebbe essere trattato come credenziali (non condividerlo) e consente l'accesso da localhost.
the_cheff

2
@tmanolatos Sì, ma devi creare due chiavi, una per testare l'app e una per l'app principale,
Sajad Mirzaei

Ricevo questa risposta dopo aver seguito i passaggi precedenti: {"error_message": "Le chiavi API con restrizioni dei referer non possono essere utilizzate con questa API.", "Results": [], "status": "REQUEST_DENIED"} Ecco l'URL , dove DEV_KEY viene sostituito con la mia chiave API: maps.googleapis.com/maps/api/geocode/…
rmutalik

Restituisce il JSON corretto quando utilizzo la mia chiave API PROD_KEY.
rmutalik

12

Puoi seguire in questo modo. Funziona almeno per me:

nella pagina delle credenziali:

  1. Selezionare l'opzione con indirizzo IP (opzione n. 3).

  2. Inserisci il tuo indirizzo IP dal tuo provider. Se non lo fai, cerca il tuo indirizzo IP utilizzando questo link: https://www.google.com/search?q=my+ip

  3. Salvarlo.

  4. Cambia il tuo link alla mappa di google come segue tra il tag scrip:

    https://maps.googleapis.com/maps/api/js?libraries=places&key=AIzxxxxxxxx "

  5. Attendi circa 5 minuti o più per consentire la propagazione della chiave API.

Ora la tua mappa di Google dovrebbe funzionare.


9

Se stai lavorando su localhost, crea una APIkey separata per il tuo sviluppo e quindi rimuovi le restrizioni su quella chiave in modo che il tuo localhost possa usarla. Ricorda di non utilizzare questa chiave durante la produzione, in modo da non esporre la tua chiave ai cacciatori online.

Ho avuto lo stesso problema e tutti i tentativi per far funzionare le restrizioni sul mio ambiente localhost non hanno avuto successo fino a quando non ho creato un apikey separato appositamente per lo sviluppo e quindi rimosso le sue restrizioni. Tuttavia non utilizzo quella chiave nell'ambiente di produzione e, una volta terminati gli sviluppi, cancellerò immediatamente la chiave API.

So che questo post è in ritardo, ma per le persone che probabilmente dovranno affrontare questo problema in futuro, questa è la strada migliore da percorrere.


5

Immagino di essere un po 'in ritardo per la festa, e sebbene sia d'accordo sul fatto che creando una chiave separata per lo sviluppo (localhost) e il prodotto è possibile fare entrambe le cose in una sola chiave.

Quando si utilizzano le restrizioni dell'applicazione -> riferimenti http -> restrizioni del sito Web, è possibile immettere URL con caratteri jolly.

Tuttavia, utilizzando un carattere jolly come .localhost / o .localhost: {port}. (quando hai già .yourwebsite.com / * ) non sembra funzionare.

Basta mettere un singolo * funziona, ma questo ti dà fondamentalmente una chiave illimitata che non è nemmeno quello che vuoi.

Quando includi il percorso completo senza usare il carattere jolly * funziona anche, quindi nel mio caso inserendo:

http: // localhost {port} /
http: // localhost : {port} / qualcos'altro / qui

Rende le mappe di Google sia locali che su www.tuosito.com utilizzando la stessa chiave API.

Ad ogni modo, quando avere 2 chiavi separate è anche un'opzione, consiglierei di farlo.


1

Puoi seguire questo tutorial su come utilizzare Google Maps per i test su localhost.

Controlla questi thread SO correlati:

Spero che sia di aiuto!


2
collegamento interrotto è rotto
Rafael Herscovici


@AEGrey - non per me, per i futuri utenti.
Rafael Herscovici

1

Devi controllare l'errore specifico all'interno della console javascript (es. Ctrl+ Shift+ KIn Firefox per Windows).

Secondo Steven Gliebe (2016) , ci sono quattro casi comuni per questo problema. Se posso riassumerlo, come questo:

  1. MissingKeyMapError >> Ottieni la chiave API di Google Maps (ma considera anche l'alternativa n. 2)
  2. RefererNotAllowedMapError >> Registra la tua porta localhost: nella dashboard per sviluppatori di Google .
  3. ApiNotActivatedMapError >> Abilitazione dell'API di Google Maps nella pagina Libreria API di Google
  4. InvalidKeyMapError >> Aggiungi correttamente la tua chiave ai tuoi script / codici

Dopo aver apportato alcune modifiche al codice, svuota la cache del browser se necessario.

In caso di altri errori, puoi controllare la pagina della documentazione dei codici di errore dell'API di Google Maps .


0

Dove dice "Accetta richieste da questi referrer HTTP (siti web) (Facoltativo)" non è necessario che sia elencato alcun referrer. Quindi fai clic sulla X accanto a localhost in questa pagina ma continua a utilizzare la tua chiave.

Dovrebbe quindi funzionare dopo pochi minuti.

Talvolta le modifiche apportate possono richiedere alcuni minuti prima di diventare effettive, quindi attendi qualche minuto prima di riprovare.


0

Digitando "il mio IP" nella ricerca di Google ho ottenuto il mio indirizzo IP pubblico e l'ho incollato nell'indirizzo IP (la terza opzione). Per me funziona.


0

Digitando "il mio IP" nella ricerca di Google ho ottenuto il mio indirizzo IP pubblico e l'ho incollato nell'indirizzo IP (la terza opzione). Per me funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.