RStudio中使用rtweet获取Twitter推文时遇认证错误求助
解决rtweet认证错误:
No default authentication found 出现该错误是因为你创建了认证对象但未将其设为默认认证,或未正确配置Twitter API的Bearer Token。按以下步骤修复:
步骤1:获取Bearer Token
- 登录Twitter开发者平台,进入你的项目与应用页面
- 找到「Keys and tokens」选项卡,生成并复制你的Bearer Token
步骤2:在R中配置默认认证
以下两种方式任选其一即可:
方式一:临时配置(单次会话有效)
在代码开头添加如下内容,替换为你的Bearer Token:
# 设置Twitter Bearer Token环境变量 Sys.setenv(TWITTER_BEARER_TOKEN = "你的Bearer Token") # 创建认证并设为默认 auth <- rtweet_app() auth_setup_default(auth)
方式二:永久保存认证(推荐)
运行一次以下代码,认证会保存到本地,后续无需重复配置:
# 用你的Bearer Token创建认证 auth <- rtweet_app(bearer_token = "你的Bearer Token") # 将认证设为默认并保存 auth_setup_default(auth)
修改后的完整代码示例
knitr::opts_chunk$set(echo = TRUE) library(rtweet) library(data.table) # 配置认证(替换为你的Bearer Token) Sys.setenv(TWITTER_BEARER_TOKEN = "你的Bearer Token") auth <- rtweet_app() auth_setup_default(auth) # 分析地点设置 mex_loc <- c(mexico_city = "19.43,-99.13,50mi", guadalajara = "20.67,-103.35,50mi", monterrey = "25.67,-100.3,50mi", toluca = "19.28,-99.66,50mi") # 提取推文 myquery <- "add my query here" mytweets <- list() for (i in 1:4) { mytweets[[i]] <- search_tweets(q = myquery, n = 18000, lang = "es", geocode = mex_loc[i], until = '2023-03-22' , include_rts = FALSE, retryonratelimit = FALSE) } tweet_dt_retail <- rbindlist(mytweets, use.names=TRUE )
额外注意事项
- 确保你的Twitter应用拥有Read权限,否则无法获取推文
- 不要直接在代码中硬编码Bearer Token,建议用
.Renviron文件管理:在项目根目录创建.Renviron文件,添加TWITTER_BEARER_TOKEN=你的Token,重启RStudio后会自动加载该变量
内容的提问来源于stack exchange,提问作者Javier
相关产品推荐
相关产品推荐

