Проверка подлинности 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)