Проверка подлинности OAuth с помощью API Twitter с использованием R

Я изучаю API Twitter.

Я использую ROAuth а также twitteR пакеты в R.

Я достигаю точки, когда я думаю, что дела идут хорошо:

To enable the connection, please direct your web browser to: 
https://api.twitter.com/oauth/authorize?oauth_token=XXXXX
When complete, record the PIN given to you and provide it here: XX

Все идет нормально. Теперь я готов увидеть некоторые сроки Twitter:

> my_tweets <- userTimeline('someTimeline')

К сожалению, я получаю:

Error in InterfaceObj$doAPICall(cmd, params, method, ...) : 
  OAuth authentication is required with Twitter's API v1.1

Я исследовал, что это значит. Я чувствую, что моя проверка подлинности OAuth является подходящей. Почему я получаю эту ошибку?

Есть ли проблема с версией API, которую я использую?

2 ответа

Вы можете выполнить этот шаг:

reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL <- "https://api.twitter.com/oauth/access_token"
authURL <- "https://api.twitter.com/oauth/authorize"
consumerKey <- "Mjn6tdsadsadkasdklad2SV1l"
consumerSecret <- "58Z7Eldsdfaslkf;asldsaoeorjkfksaVCQtvri"
twitCred <- OAuthFactory$new(consumerKey=consumerKey,
                             consumerSecret=consumerSecret,
                             requestURL=reqURL,
                             accessURL=accessURL,
                             authURL=authURL)
twitCred$handshake()

После запуска этого кода вы увидите в консоли R сообщение вроде этого:

To enable the connection, please direct your web browser to: 
https://api.twitter.com/oauth/authorize?oauth_token=scmVODruosvz6Tdsdadadasdsa
When complete, record the PIN given to you and provide it here:

Просто вставьте ссылку в ваш браузер, затем авторизуйте приложение, последний раз вы получите PIN-код, просто скопируйте и вставьте PIN-код в консоль R.

registerTwitterOAuth(twitCred)

Консоль R покажет TRUE, если вы добьетесь успеха.

user <- getUser("xxx")
userTimeline(user, n=20, maxID=NULL, sinceID=NULL, includeRts=FALSE)

Если проблема не устранена, попробуйте показать версию пакета и обновить ее до последней версии.

sessionInfo()
update.packages("twitteR")

Последняя версия для twitteR - 1.1.7 => http://cran.r-project.org/web/packages/twitteR/index.html

Я вижу, что у вас был успешный доступ (он же рукопожатие). Я предполагаю, что ваш код подтверждения связи будет похож на следующую строку.

Cred$handshake(cainfo = system.file("CurlSSL", "your_certificate.pem", package = "RCurl") )

Тогда я предполагаю, что вы зарегистрировали Twitter OAuth, используя следующую строку, в которой вы сказали, что она прошла успешно.

registerTwitterOAuth(Cred)

Тогда ваша userTimeline должна включать файл pem, который вы создали ранее.

my_tweets <- userTimeline('someTimeline', cainfo="your_certificate.pem", n=200)
Другие вопросы по тегам