4

我想在 R 中使用 RCurl 连接到 Twitter 的 Streaming API,并且还能够过滤关键字。然而,Twitter API v1.1 中对授权的新限制使得使用 RCurl 变得困难。

以前,代码可以从这个页面中获取如下内容:

 getURL("https://stream.twitter.com/1/statuses/filter.json", 
   userpwd="Username:Password",
   cainfo = "cacert.pem",
   write=my.function,
   postfields="track=bruins")

但现在,Twitter 的新 API 正在让用户使用 OAuth 进行授权。我有一个令牌和秘密,我只需要把它放在这个代码中进行授权。

谢谢!

4

1 回答 1

7

你可以用 pacakge 做到这一点ROAuth。我假设您已经在 Twitter 上注册了您的应用程序并拥有一个 API 密钥。我从 Stack Overflow 上的其他问题(该问题和相关答案还包含指向其他贡献问题的一些链接)以及 packageROAuthtwitteR.

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

requestURL <- "https://api.twitter.com/oauth/request_token"
accessURL = "http://api.twitter.com/oauth/access_token"
authURL = "http://api.twitter.com/oauth/authorize"
consumerKey = "myconsumerkeystring"
consumerSecret = "myconsumersecretstring"
Cred <- OAuthFactory$new(consumerKey=consumerKey,
                             consumerSecret=consumerSecret,
                             requestURL=requestURL,
                             accessURL=accessURL, 
                             authURL=authURL)
    #The next command provides a URL which you will need to copy and paste into your favourite browser
    #Assuming you are logged into Twitter you will then be provided a PIN number to type into the R command line
Cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl") )
    # Checks that you are authorised
registerTwitterOAuth(Cred)

我相信流 API 的使用是由包处理的streamR

高温高压

于 2013-02-25T07:54:39.703 回答