0

我在使用 twitteR 包时遇到了麻烦,因为即使使用 ROAuth 进行注册,我仍然不能做废话。这是我的输入/输出

setwd("C:/")
download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile="cacert.pem")
cred <- OAuthFactory$new(consumerKey=HIDDEN,
                     consumerSecret=HIDDEN,
                     requestURL="https://api.twitter.com/oauth/request_token",
                     accessURL="http://api.twitter.com/oauth/access_token",
                     authURL="http://api.twitter.com/oauth/authorize")
cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl") )

registerTwitterOAuth(cred)

结果是:

> cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl") )
To enable the connection, please direct your web browser to: 
http://api.twitter.com/oauth/authorizeoauth_token=MNjWmBE7QzodHlK8yeyZC559iunb8urA8cGLamww
When complete, record the PIN given to you and provide it here:

> registerTwitterOAuth(cred)
[1] TRUE

但是当我尝试做某事时:

> rate.limit <- getCurRateLimitInfo( cainfo="cacert.pem")
[1] "Unauthorized"
Error in twInterfaceObj$doAPICall("application/rate_limit_status", params = params,  : 
  Error: Unauthorized

我仍然收到未经授权的错误。

我到底应该在这里做什么?

哦,顺便说一句,我的 sessionInfo() 已附加:

R version 2.15.1 (2012-06-22)
Platform: x86_64-pc-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252 
[2] LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] plyr_1.7.1     stringr_0.6.1  ROAuth_0.9.2   digest_0.5.2  
[5] twitteR_1.1.0  rjson_0.2.12   RCurl_1.95-4.1 bitops_1.0-4.1

loaded via a namespace (and not attached):
[1] tools_2.15.1
4

2 回答 2

1

我遇到了同样的问题,我再次阅读了“R 的 Twitter 客户端”手册(http://cran.r-project.org/web/packages/twitteR/vignettes/twitteR.pdf)。我刚刚在 Authentication with OAuth 部分中找到了以下段落:

“第一步是为自己创建一个 Twitter 应用程序。转到https://twitter.com/apps/new并登录。填写基本信息后, 转到“设置”选项卡并选择“读取、写入”和访问直接消息“。 请确保在执行此操作后单击保存按钮。”

然后我改变了我的应用程序的权限,它就可以工作了。

于 2013-04-24T06:59:22.953 回答
0

我通过创建一个新应用程序、在我的 Twitter 设置中添加我的电话号码、从 github 安装最新的 twitteR 包并使用以下命令通过 httr 进行身份验证来解决了同样的问题:

setup_twitter_oauth(consumer_key=consumerKey, consumer_secret=consumerSecret, access_token=accessToken, access_secret=accessSecret)
于 2015-01-22T00:20:41.530 回答