web-dev-qa-db-de.com

Fehler beim Mappen in ggmap mit API-Schlüssel (403 Forbidden)

Normalerweise benutze ich ggmap, um Punkte auf einem einfachen Stadtplan zu zeichnen. Dabei bin ich heute auf einen neuen Fehler gestoßen, der mir die Verwendung der Funktion get_map() verbietet.

        #get API key @ https://developers.google.com/places/web-service/get-api-key
    key<-"AIzaSyCYgKKt2fn7Crt-V6Hnc5aw5lSfy7XLQ-Y"
    register_google(key = key)

atw<- get_map(location=c(-88.68,42.14), zoom=10, scale=2)

Ich bin nicht sicher, wo das Problem liegt. Ich habe einen neuen API-Schlüssel ausprobiert, aber kein Glück. Irgendeine Eingabe?

Der Fehler lautet:

uRL kann nicht geöffnet werden ' https://maps.googleapis.com/maps/api/staticmap?center=42.14,-88.68&zoom=10&size=640x640&scale=2&maptype=terrain&language=en-DE&key=AIzaSyCYgKt2fn7C -V6Hnc5aw5lSfy7XLQ-Y ': HTTP-Status war' 403 Forbidden'Error in download.file (URL, destfile = destfile, quiet =! Messaging, mode = "wb"): URL kann nicht geöffnet werden ' https://maps.googleapis.com/maps/api/staticmap?center=42.14,-88.68&zoom=10&size=640x640&scale=2&maptype=terrain&language=en-DE&key=AIzaSyCYgKKt2fn7CrtYL5H6 '

6
I Del Toro

aktualisiert: 01.01.2018 für ggmap 2.7.904 und aktuelle Google Cloud-API 

Problem

Ihr API-Schlüssel lautet 

  • entweder nicht gültig (falsch eingegeben)/nicht für die Abrechnung aktiviert (wahrscheinlichster Grund) oder 
  • es gibt einige Verbindungs-/Proxy-Probleme. 

Check out diese Ausgabe auf Github für Hinweise.

Lösung

Um zu prüfen, was das Problem ist, geben Sie geocode("Houston", output = "all") ein und sehen Sie sich die Fehlermeldung an.

1. Falscher API-Schlüssel

> geocode("Houston", output = "all")
$error_message
[1] "The provided API key is invalid."

$results
list()

$status
[1] "REQUEST_DENIED"

Sie haben also einen API-Schlüssel bereitgestellt, der von Google nicht erkannt wird. Vielleicht falsch geschrieben, vielleicht missbraucht? Manchmal gibt es seltsame Probleme. Generieren Sie einen neuen API-Schlüssel in der Google Console und versuchen Sie es erneut.

2. API-Schlüssel nicht für Geokodierung aktiviert

> geocode("Houston", output = "all")
$`error_message`
[1] "This API project is not authorized to use this API."

$results
list()

$`status`
[1] "REQUEST_DENIED"

Dies bedeutet, dass Ihr API-Schlüssel gültig ist, Sie haben jedoch die Verwendung dieser bestimmten API nicht zugelassen. Denken Sie daran: Google hat eine API für jede Art von Anforderung (statische Karten, Wegbeschreibungen, Geokodierung, ...). Daher müssen Sie zu Ihrer Google Console gehen und diesen API-Schlüssel für die richtigen APIs aktivieren, in diesem Fall Geocoding.

Ausgabe mit aktivierten APIs

> ggmap(get_map("Houston"))

 plot

3
Roman

Wenn Ihr API-Schlüssel funktioniert, können Sie auch library(googleway) verwenden, um interaktive Karten zu zeichnen

library(googleway)

## you can use separate API keys for different APIs
set_key( "GOOGLE_API_KEY", api = "geocode")
set_key( "GOOGLE_MAP_KEY", api = "map")

## you can view the keys you have with
google_keys()

google_map( location = c(52, 0), zoom = 6 )

 enter image description here

## add a marker by geocoding an address
res <- google_geocode("Buckingham Palace")
loc <- geocode_coordinates( res )

google_map() %>%
  add_markers(data = loc)

 enter image description here

1
SymbolixAU