Сначала (точка 3) всех аргументов токена, похоже, требует токен на предъявителя:
Токен, связанный с созданным пользователем APP (требуется учетная запись разработчика), который преобразуется в токен на предъявителя для выполнения премиальных API-запросов
, которые, как вы можете прочитать здесь: https://developer.twitter.com/en/docs/basics/authentication/guides/bearer-tokens,, генерируются посредством запроса скручивания:
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 , я не уверен, что она реализована на данном этапе.Чтобы использовать эту нумерацию страниц , вы должны предоставить аргумент next с предоставленным токеном.Ссылка на твиттер гласит:
Этот параметр используется для получения следующей «страницы» результатов.Значение, используемое с параметром, извлекается непосредственно из ответа, предоставленного API, и не должно изменяться.
Так что вы можете вставить свой первоначальный запрос с аргументом разбиения на страницы, если можетеполучить этот следующий токен через rtweet , например,
# 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 () на этом этапе, и я действительно не уверен, реализована ли возможность получения токена pagiation ,Я бы предложил использовать curl для поиска в полном архиве твиттера.
Что касается (точка 4) , я бы предложил использовать rbind () в цикле, используяпроанализированный фрейм данных твитов (используя arugment parse = TRUE внутри функции search_fullarchive () пакета rtweet ).
Ина ваш начальный вопрос (поint 1) : Просто зацикливайтесь, пока не дойдете до 50 000 твитов.Я не думаю, что есть какая-либо возможность, кроме зацикливания.