Twitter OAuth未经授权的错误

时间:2014-02-10 16:14:12

标签: r twitter oauth twitter-oauth

我注意到很多关于Twitter API身份验证问题的线索,但显然没有人认为我的问题有关。一旦我尝试进行身份验证,在我被要求输入PIN后,系统就会抛出错误(“未经授权”)。这是在我输入PIN之前发生的。

代码是:

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,但我得到完全相同的错误。

1 个答案:

答案 0 :(得分: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 =&gt; http://cran.r-project.org/web/packages/twitteR/index.html

你可以下载twitteR manual =&gt;请参阅第12页http://cran.r-project.org/web/packages/twitteR/twitteR.pdf