尝试使用 R.Twitter API 检索推文时出现错误 403 和 401

问题描述 投票:0回答:1

我对R有相当的基础知识。几个月前,我使用这个简单的代码和 Rtweet 包来使用我的 Twitter API 凭据来检索推文。


library(rtweet)
library(igraph)
library(tidyverse)

token <- create_token(
  app = "name",
  consumer_key = "XXXXXXXXXX",
  consumer_secret = "XXXXXXXXXX",
  access_token = "XXXXXXXXXX",
  access_secret = "XXXXXXXXXX")


tweets <- search_tweets("search", n=50, type= "mixed", retryonratelimit = TRUE)

由于 API 更改,我无法再使用此代码。当我尝试运行代码时,收到 403 错误:“您当前只能访问 Twitter API v2 端点的子集和有限的 v1.1 端点(例如媒体发布、oauth)。如果您需要访问此端点,您可能需要不同的访问级别。”我支付了 API 的基本层费用,并且我的应用程序附加到了一个项目,但我不断收到此错误。另外,我尝试重置我的令牌。我做错了什么?

另外,我尝试了另一种身份验证方法,该功能只是要求我输入我的不记名令牌:

auth <- rtweet_app()
tweets_libros <- search_tweets("libros sep", n=50, type= "mixed", retryonratelimit = TRUE, token = auth)

它给了我同样的错误。

你知道我做错了什么吗?或者只是因为新的变化 Twitter API 就变得疯狂了?

而且,由于我只知道如何使用 Rtweet 连接到 Twitter(或 X)API,因此我要求 Bard 给我一个代码,以便在没有 Rtweet 包的情况下实现此目的:

library(httr)
library(jsonlite)

# Set your Twitter API keys and secrets
consumer_key <- "XXXXXXXXXX"
consumer_secret <- "XXXXXXXXXX"
access_token <- "XXXXXXXXXX"
access_token_secret <- "XXXXXXXXXX"

# Create the authentication header
bearer_token <- paste0("Bearer ", access_token)
headers <- c(Authorization = bearer_token)

# Search for tweets about "rstats" and limit the results to 10 tweets
url <- "https://api.twitter.com/2/tweets/search/recent?q=rstats&n=10"
response <- httr::GET(url, headers = headers)

# Check the response status code
if (response$status_code == 200) {
  # The request was successful
  tweets <- jsonlite::fromJSON(content(response, "text"))
  print(tweets)
} else {
  # The request failed
  print(paste("Error:", response$status_code))
}

我不知道上面的代码是如何工作的,但我尝试用我的不记名令牌替换“bearer”,但这仍然不起作用。当我运行上面的代码时,它返回 401 错误。

r twitter twitter-api-v2 rtweet
1个回答
0
投票

您通过 OAuth 2.0 支付了 API 访问费用,但您并未使用它。这就是为什么你不断收到同样的错误。

阅读身份验证小插图以使用 Oauth 2.0 ,它基本上是说使用

rtweet_client
rtweet_oauth2
来获取身份验证。
获得令牌后,您需要使用
tweet_search_recent
tweet_search_all
,因为这些函数使用 API v2。

请注意,如果您想要轻松的身份验证体验,我建议您安装 httr2 devel 版本和来自 github(来自 devel 分支)的 rtweet。

© www.soinside.com 2019 - 2024. All rights reserved.