我已经安装了rtweet,并且当我想从美国以外的特定国家/地区收集推文时,该软件包不收集任何数据。我已经安装了 Geocoding API , Maps JavaScript API 和 Geolocation API ,并使用了Google提供的相同API密钥作为R中的环境变量。这是我遵循的步骤:
生成一个Google maps_token
google_maps_token<-"my key XXXXXXXXXX"
主目录路径
home_directory <- path.expand("~/")
结合令牌名称
file_name <- file.path(home_directory, "google_maps_token.rds")
将令牌保存到主目录
saveRDS(google_maps_token, file = file_name)
创建环境变量
cat(paste0("GOOGLE_MAPS_PAT=", file_name),
file = file.path(home_directory, ".Renviron"),
append = TRUE)
可视化API密钥环境变量
usethis::edit_r_environ()
TWITTER_PAT = / Users / xxxxxx / .rtweet_token1.rds GOOGLE_MAPS_PAT = /用户/xxxxxx//google_maps_token.rds
保存Google api密钥后,我重新启动RStudio以开始收集推文,并且发生了这种情况:
加载rtweet库
library(rtweet)
收集来自美国的推文
tweets_USA <- search_tweets("#lang:en",
geocode = lookup_coords("USA",apikey = "google_maps_token"),
n=10, include_rts = FALSE)
正在搜索推文... 完成收集推文!
收集来自墨西哥的推文
tweets_Mexico <- search_tweets("#lang:es",
geocode = lookup_coords("mexico",apikey = "google_maps_token"),
n=10, include_rts = FALSE)
正在搜索推文... 完成收集推文!
此外,当我将rtweet包中的lookup_coords()函数与“ usa”一起使用时,它会起作用
从美国获取坐标
usa <- lookup_coords("usa")
但是当我尝试按照帮助部分中的示例使用其他地址时,它不会收集任何数据
从巴西获取坐标
bz <- lookup_coords("brazil")
但是当我直接在函数中编写API密钥时,它就可以工作。 出于安全原因,我改写“ XXXXXXXXXX”
mexico_coord <- lookup_coords(address = "mexico",
components = "country:Mexico",
apikey = "XXXXXXXXXXXX")
我做错了吗,还是需要将API密钥安装在另一个目录中?我不得不说,我的工作目录(用于保存项目和脚本的目录)与由于运行path.expand(“〜/”)
而出现的主目录不同。答案 0 :(得分:1)
我找到了使lookup_coords()函数正常工作的解决方案。 我只需要使用Sys.getenv()函数来调用google_maps_token.rds
使用墨西哥的坐标生成变量
mexico_coord <- lookup_coords(address = "mexico",
components = "country:Mexico",
apikey=Sys.getenv("google_maps_token.rds"))
然后,我可以使用search_tweet()函数从西班牙语收集来自墨西哥的10条推文
tuits_Mex_esp_10 <- search_tweets("lang:es",
geocode = mexico_coord, n = 10)