Нет PIN-кода во время процесса ROAuth в R Studio - PullRequest
0 голосов
/ 20 апреля 2019

Я хочу получить доступ к твиттеру через 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, если есть другой пакет / способ, который позволяет мне загружать твиты, связанные с ключевыми словами, для большого временного ряда, я был бы признателен.

Большое спасибо за помощь:).

1 Ответ

0 голосов
/ 21 апреля 2019

Решение:

На этот раз мне потребовался не пакет «ROAuth», а «httr» и «openssl», и я смог использовать функцию «setup_twitter_oauth» с моими данными для входа в систему, и это сработалобез проблем!

Кстати: он не показал мне PIN-код, но данные могут быть напрямую загружены в R!

Согласно этому видео YouTube , твиттеручетной записи требуется разрешение «Чтение, запись и отправка сообщений».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...