2014-02-10 208 views
0

我注意到許多關於Twitter API身份驗證問題的主題,但顯然沒有人與我的問題相關。只要我嘗試進行身份驗證,在我被要求輸入PIN碼後,系統就會拋出一個錯誤(「未經授權」)。發生這種情況之前我可以輸入PIN碼。Twitter OAuth未授權錯誤

的代碼是:

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

# Set SSL certs globally 
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))) 

Credentials <- OAuthFactory$new(
    consumerKey = "XX", 
    consumerSecret = "XX", 
    oauthKey = "XX", 
    oauthSecret = "XX", 
    requestURL = "https://api.twitter.com/oauth/request_token", 
    authURL = "https://api.twitter.com/oauth/authorize", 
    accessURL = "https://api.twitter.com/oauth/access_token") 

Credentials$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")) 

而且結果是:

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

正如上面提到的,這種情況發生之前,其實我可以輸入個人識別碼。我在RStudio中運行腳本,但在傳統的R GUI上運行並沒有任何改變。我正在運行R版本3.0.1。

Post Scriptum 我嘗試了不同版本的代碼,例如this one,但我得到了完全相同的錯誤。

回答

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

您可以下載twitteR手冊=>見第12頁http://cran.r-project.org/web/packages/twitteR/twitteR.pdf

相關問題