r - 使用 API 密钥在 ggmap 中映射时出错(403 禁止)
问题描述
我通常用来ggmap
在简单的城市地图上绘制点。今天这样做时,我遇到了一个新错误,禁止我使用该功能get_map()
#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)
我不确定问题出在哪里。我尝试了一个新的 API 密钥,但没有运气。有输入吗?
错误内容如下:
无法打开 URL ' https://maps.googleapis.com/maps/api/staticmap?center=42.14,-88.68&zoom=10&size=640x640&scale=2&maptype=terrain&language=en-EN&key=AIzaSyCYgKKt2fn7Crt-V6Hnc5aw5lSfy7XLQ-Y ':HTTP 状态为'403 禁止'download.file 中的错误(url,destfile = destfile, quiet = !messaging,mode = "wb"):无法打开 URL ' https://maps.googleapis.com/maps/api/staticmap?center= 42.14,-88.68&zoom=10&size=640x640&scale=2&maptype=terrain&language=en-EN&key=AIzaSyCYgKKt2fn7Crt-V6Hnc5aw5lSfy7XLQ-Y '
解决方案
更新:2018 年 12 月 1 日,用于 ggmap 2.7.904 和当前的 Google Cloud API
问题
您的 API 密钥是
- 无效(输入错误)/未启用计费(最可能的原因)或
- 有一些连接/代理问题。
解决方案
要检查问题是什么类型geocode("Houston", output = "all")
并查看错误消息。
1.错误的API密钥
> geocode("Houston", output = "all")
$error_message
[1] "The provided API key is invalid."
$results
list()
$status
[1] "REQUEST_DENIED"
这意味着您提供了 Google 无法识别的 API 密钥。也许是打错了,也许是抄错了?有时会出现奇怪的问题,因此请在 Google 控制台中生成新的 API 密钥并重试。
2. 未启用地理编码的 API 密钥
> geocode("Houston", output = "all")
$`error_message`
[1] "This API project is not authorized to use this API."
$results
list()
$`status`
[1] "REQUEST_DENIED"
这意味着您的 API 密钥有效,但您不允许使用此特定 API。请记住:Google 为每一种小类型的请求(静态地图、方向、地理编码……)都有一个 API。因此,您需要转到您的 Google 控制台并为正确的 API 启用此 API 密钥,在本例中为Geocoding。
启用所有 API 的工作输出
> ggmap(get_map("Houston"))
推荐阅读
- java - 如何根据正则表达式中的关键字进行拆分,然后在 Java 中使用空格?
- c++ - 在 CMake 的头文件中包含外部头文件
- php - 在 Laravel Blade 中循环时限制 html 元素
- python - 我如何计算打印了多少次?
- powershell - 使用 PowerShell 从 TFS 工作项目(TASK/BUG)下载 SQL 脚本
- python - 如何使用APScheduler添加每天在固定时间开始并在固定时间完成的作业
- node.js - TypeError `[ERR_INVALID_CALLBACK]`:在 NodeJs 上
- apache-kafka - 在 burrow 配置的拒绝列表中添加控制台使用者的原因
- string - 字符串比较总是正确的
- ruby-on-rails - 使用 arel_predicates 和正则表达式编写带有 ransack 的自定义过滤器 (RoR 6)