Я хочу получить доступ к твиттеру через R Studio [версия 3.5.1 (2018-07-02)], чтобы загрузить твиты, соответствующие определенному ключевому слову.
Я использую пакеты "twitteR" и "ROAuth".
В моей учетной записи Twitter в качестве разрешения доступа установлено «Чтение, запись и отправка сообщений».
Моя проблема точно такая же, как указано здесь
Единственное отличие в том, что предоставленное там решение не работает для меня.
Выполнив код (см. Связанный пост) с моими ключами, я смогу нажать кнопку «аутентифицировать» на открывающемся веб-сайте, сразу же перейти на URL-адрес обратного вызова и не увидеть PIN-код.
Twitter требует URL обратного вызова, поэтому я не могу удалить его из настроек моей учетной записи Twitter.
Я устал:
- переустановка пакетов
- изменение рабочего каталога
- установил пакеты "openssl" и "httpuv" как предложено
- изменил разрешение на доступ в Твиттере моей учетной записи с «Чтение и запись» на
«Чтение, запись и отправка сообщений»
- использовал функцию setup_twitter_oauth, которая выдает сообщение об ошибке:
> setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
[1] "Using direct authentication"
Error in check_twitter_oauth() : OAuth authentication error:
This most likely means that you have incorrectly called setup_twitter_oauth()'
Мой основной подход основан на связанной теме выше. Я использую этот код:
requestURL <- "https://api.twitter.com/oauth/request_token"
accessURL = "https://api.twitter.com/oauth/access_token"
authURL = "https://api.twitter.com/oauth/authorize"
consumerKey = 'YYY'
consumerSecret = 'XXX'
twitCred <- OAuthFactory$new(consumerKey='YYY',
consumerSecret='XXX',
requestURL=requestURL,
accessURL=accessURL,
authURL=authURL)
download.file(url="http://curl.haxx.se/ca/cacert.pem",
destfile="cacert.pem")
twitCred$handshake(cainfo= system.file("CurlSSL", "cacert.pem", package = "RCurl"))
Второй подход заключался в использовании следующей функции, которая выдает ту же ошибку, что и указанная выше.
TwitterOAuth<-function()
{
reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL<- "https://api.twitter.com/oauth/access_token"
authURL <- "https://api.twitter.com/oauth/authorize"
twitCred <- OAuthFactory$new(consumerKey='YYY',
consumerSecret='XXX',
requestURL=reqURL,
accessURL=accessURL,
authURL=authURL)
options(RCurlOptions = list(cainfo = system.file("CurlSSL",
"cacert.pem",
package = "RCurl")))
twitCred$handshake()
registerTwitterOAuth(twitCred)
}
TwitterOAuth()
Этот второй подход генерирует ссылку API Twitter в консоли R, когда я немедленно нажимаю на нее, меня перенаправляют на страницу Twitter, которая гласит:
"Стоп!
Токен запроса для этой страницы недействителен. Возможно, он уже использовался или срок его действия истек, поскольку он слишком старый. Пожалуйста, вернитесь на сайт или приложение, которое отправило вас сюда, и попробуйте снова; Вероятно, это была просто ошибка. "
Я ожидаю установить соединение между R и Twitter.
Я не зависим от пакета ROAuth, если есть другой пакет / способ, который позволяет мне загружать твиты, связанные с ключевыми словами, для большого временного ряда, я был бы признателен.
Большое спасибо за помощь:).