'max_id' search_30day() 和 search_premium() 函数的 rtweet 包错误

'max_id' error in rtweet package for search_30day() and search_premium() functions

我正在尝试使用 R 作为搜索词提取过去 3 年的推文,并且我有一个 Twitter 沙箱开发者帐户和搜索推文:完整存档沙箱访问权限。

我是这样加载包的:

r = getOption("repos")
r["CRAN"] = "http://cran.us.r-project.org"
options(repos = r)

ipak <- function(pkg){
    new.pkg <- pkg[!(pkg %in% installed.packages()[, "Package"])]
    if (length(new.pkg)) 
        install.packages(new.pkg, dependencies = TRUE)
    sapply(pkg, require, character.only = TRUE)
}

# usage
packages <- c("rtweet","dplyr", "tidyr", "tidyverse", "tidytext", "tm", "tmap", "SnowballC", "wordcloud", "RColorBrewer", "textdata", "bing", "reshape2")
ipak(packages)

我保存了创建令牌所需的详细信息,这是我用来创建它的代码(没有发布我的令牌的私人详细信息):

token <- create_token(
  app = appname,
  consumer_key = api_key,
  consumer_secret = api_secret_key,
  access_token = access_key, 
  access_secret = access_secret_key)

环境搭建好后,我运行搜索tweets的代码运行出错了。下面是我用来搜索我的推文的代码。

marriott <- rtweet::search_fullarchive(q = "marriott artificial intelligence", 
                               n = 100, 
                               fromDate = "201801010000", 
                               toDate = "20210600000", 
                               env_name = "pulltweets", 
                               safedir = NULL, 
                               parse = TRUE, 
                               token = token)

以下是错误的更多详细信息。

Error: max_id must be a character vector or data frame

在 运行'rlang::last_error()' 之后,返回了:

<error/rlang_error>
`max_id` must be a character vector or data frame
Backtrace:
 1. rtweet::search_fullarchive(...)
 2. rtweet:::search_premium(...)
 3. rtweet:::TWIT_paginate_max_id(...)
 4. rtweet::max_id(max_id)
 5. rtweet:::find_id(x, "max_id")

我运行使用rtweet::search_30day进行了类似的搜索,用201801010000和201801300000替换了开始和结束时间,并且运行变成了完全相同的错误。

当我尝试提供 运行dom max_id 值时,如下所示,我收到另一个错误:

marriott <- rtweet::search_fullarchive(q = "marriott artificial intelligence", 
                               n = 100, 
                               fromDate = "201801010000", 
                               toDate = "20210600000", 
                               env_name = "pulltweets", 
                               safedir = NULL, 
                               parse = TRUE, 
                               max_id = 100,
                               token = token)

Error in rtweet::search_fullarchive(q = "marriott artificial intelligence", : unused argument (max_id = 100)

我目前正在为 rtweet 使用包版本“0.7.0”。我能够 运行 其他功能,例如 search_tweets 正常而不会出现此错误。

有谁知道如何解决这个问题?

我通过在令牌创建过程中添加一行代码找到了上述问题的修复方法,如下所示:

token <- create_token(
  app = appname,
  consumer_key = api_key,
  consumer_secret = api_secret_key,
  access_token = access_key, 
  access_secret = access_secret_key,
  set_renv = TRUE)

如果其他人提出任何其他修复,请随时更新!