所有令牌参数的第一个(第 3 点)似乎需要一个不记名令牌:
与用户创建的 APP 相关联的令牌(需要开发者帐户),将其转换为不记名令牌以进行高级 API 请求
正如您可以在此处阅读的那样:https://developer.twitter.com/en/docs/basics/authentication/guides/bearer-tokens是通过 curl 请求生成的:
curl -u 'API key:API secret key' \
--data 'grant_type=client_credentials' \
'https://api.twitter.com/oauth2/token'
将“API 密钥”和“API 密钥”替换为您的密钥。
其次(第 2 点),高级帐户允许对推文进行分页,即它提供一个令牌,如果要返回的推文数量高于您的帐户允许每个请求的数量,例如 100。这可以在 api 中读取高级搜索参考:https ://developer.twitter.com/en/docs/tweets/search/api-reference/premium-search 由于rtweet参考
中未提及此功能,我不确定它是否在这个阶段。为了使用这个分页,你必须为接下来的争论提供提供的令牌。推特参考指出:
此参数用于获取下一个“页面”结果。与参数一起使用的值直接从 API 提供的响应中提取,不应修改。
因此,如果您可以通过rtweet检索下一个标记,则您可以使用 pagination 参数粘贴您的初始查询,例如
# initial example query looking for the term rtweet, filtering for tweets associated with news, excluding retweets and replies, starting on July 1, 2006 and ending on July 2, 2019
query <- "rtweet filter:news -filter:retweets -filter:replies since:2006-07-01 until:2019-07-02"
# next_token retrieved by request
next <- paste0("next:", next_token)
# search
search_fullarchive(query, n = 100, env_name = "your_developer_environment", token = "your_bearer_token")
# something happens and hopefully you get pagination token
.
.
.
# paste token with initial query
query <- paste0(query, " ", "pagination_token")
# search again, but now with pagination token in query
search_fullarchive(query, n = 100, env_name = "your_developer_environment", token = "your_bearer_token")
显然,这个查询必须循环,直到没有返回分页标记。
由于我现阶段没有使用search_fullarchive()函数的经验,而且我真的不确定是否实现了接收分页令牌的可能性,我建议使用 curl 来搜索完整的 twitter 存档。
关于(第 4 点),我建议使用已解析的推文数据帧在循环中使用rbind()(在包rtweet的search_fullarchive()函数中使用参数parse = TRUE)。
对于您最初的问题(第 1 点):只需循环整个内容,直到达到 50,000 条推文。我认为除了循环之外没有任何可能。