2014-02-17 2 views
4

Я пытаюсь выполнить аутентификацию Rstudio в Twittter с помощью twitteR.Rstudio to Twitter рукопожатие, дающее ошибку: неавторизованный через twitterR

Я только ошибка после рукопожатия.

Мой код:

#install(rcurl, ROAuth, twitteR) 
#load(rcurl, ROAuth, twitteR) 
reqURL <- "https://api.twitter.com/oauth/request_token" 
accessURL <- "https://api.twitter.com/oauth/access_token" 
authURL <- "https://api.twitter.com/oauth/authorize" 
consumerKey <- "key" 
consumerSecret <- "secret key" 
twitCred <- OAuthFactory$new(consumerKey=consumerKey, 
          consumerSecret=consumerSecret, 
          requestURL=reqURL, 
          accessURL=accessURL, 
          authURL=authURL) 

options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))) 
twitCred$handshake() 

Я получаю рукопожатия и отправить мне на страницу Идент для Twitter. Я разрешаю и получаю булавку.

я ввожу палец в этом коде:

registerTwitterOAuth(pin number here) 

Затем я вернулся с «Ошибка: Несанкционированный».

Я добавил новую учетную запись приложения Twitter и получил другой набор клиентских ключей, но все равно получил то же самое.

+0

Обратите внимание, что вы не аутентифицируете «RStudio» для Twitter, просто R. RStudio - это только IDE, которую вы используете для редактирования и запуска кода. (Точно так же вы не сказали бы «подключить iPython к ...») –

+0

Я упомянул RStudio, поскольку вижу, что иногда у него есть свои проблемы при работе с твиттером. Не знаю, почему. Обновление – mpg

+0

: Я сделал это в обычной консуле R и сделал еще один шаг вперед. Теперь я ошибка, когда я делаю searchtwitter: searchTwitter ('патриоты', геокод = '42 .375, -71.1061111,10mi ') Ошибка в twInterfaceObj $ doAPICall (CMD, Титулы, "GET", ...): OAuth аутентификация требуется с API Twitter v1.1 – mpg

ответ

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 console покажет TRUE, если вы достигните успеха.

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

Если еще какие-либо проблемы просто пытаются показать свою версию пакета и обновления до последней версии

sessionInfo() 
update.packages() 

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

1

Следуя ниже шаги заставили мой код работать после того, как опробовали предложения из всех возможных ресурсов по сети !!!! Я использую окна 7, 64 бит и RStudio для кода ниже

Убедитесь, что у вас установлены все соответствующие пакеты - ROAuth, twitteR, RCurl; Обычно зависимости, указанные на странице CRAN, указывают на недостающие пакеты, если они есть

Установить SSL-сертификаты по всему миру, как показано в коде; Я не эксперт, почему это требуется, но это помогло мне получить мой код через команду «Загрузить файл», чтобы загрузить cacert.PEM файл Убедитесь, что ваш твиттер приложение имеет полный доступ к чтению и записи, а не только доступ только для чтения, который является значением по умолчанию

Окончательный код для связи с Twitter

Получить соответствующие библиотеки

library(twitteR) 
    library(ROAuth) 
    library(RCurl) 

Set SSL сертификаты глобально

options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))) 

    download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile="cacert.pem") 

Убедитесь, что URL являются HTTPS, а не HTTP в случае, если вы скопировали код из где-то

reqURL <- "https://api.twitter.com/oauth/request_token" 
    accessURL <- "https://api.twitter.com/oauth/access_token" 
    authURL <- "https://api.twitter.com/oauth/authorize" 


    consumerKey <- "=====" 

    consumerSecret <- "=====" 


    twitCred <- OAuthFactory$new(consumerKey=consumerKey, 
           consumerSecret=consumerSecret, 
           requestURL=reqURL, 
           accessURL=accessURL, 
           authURL=authURL) 

    #twitCred <- getTwitterOAuth(consumer_key= consumerKey, consumer_secret=consumerSecret) 


    twitCred$handshake() 

На этом этапе вам нужно вставить URL в браузер, который откроет страницу щебета с> приложения - вы должны получить PIN-код оттуда и вставить его в R консоли

registerTwitterOAuth(twitCred) 

TESTTHE кОД: Теперь вы можете проверить код

testSearch = searchTwitter("#food", n = 10, cainfo="cacert.pem") 
Moditweets <- searchTwitter("#Narendra Modi", n = 100) 
+0

Превратите комментарии в обычный текст, и это будет гораздо более читаемым. –

+0

Спасибо Аарон Холл! –

0

Вслед работал для меня, Windows 8, обратите внимание, что проверка подлинности должно быть сделано в ЦМД, это наклоняется произойдет через Rstudio IDE, вы хотите, чтобы проверить подлинность R как язык

#Open admin shell: In the Start Search box, type cmd, and then press CTRL+SHIFT+ENTER. 
#Goto C:/...R../bin/x64, run ./r.exe 

install.packages("twitteR") #Takes some time for mirrors to pop-up 
library(twitteR) 
library(ROAuth) 
library(RCurl) 
download.file(url="http://curl.haxx.se/ca/cacert.pem",destfile="cacert.pem") 
requestURL <- ... 
accessURL <- ... 
authURL <- ... 
consumerKey <- ... 
consumerSecret <- ... 
twitCred <- OAuthFactory$new(consumerKey=consumerKey, consumerSecret=consumerSecret, 
          requestURL=requestURL, accessURL=accessURL, authURL=authURL) 
twitCred$handshake(cainfo="cacert.pem") 
registerTwitterOAuth(twitCred) 
save(list="twitCred", file="twitteR_credentials") 
## Now to get some tweets, place the files cacert.perm and 

twitteR_credentials from bin folder to the the current working directory of Rstudio 
library (twitteR) 
load("twitteR_credentials") 
registerTwitterOAuth(twitCred) 
searchTwitter('#Obama', cainfo="cacert.pem", n=5, locale = 'en') 
Смежные вопросы