我正在探索Twitter API。
我正在使用R中的ROAuth
和twitteR
个包。
我认为事情进展顺利:
To enable the connection, please direct your web browser to:
https://api.twitter.com/oauth/authorize?oauth_token=XXXXX
When complete, record the PIN given to you and provide it here: XX
到目前为止一切顺利。现在,我准备看到一些Twitter时间表:
> my_tweets <- userTimeline('someTimeline')
不幸的是,我得到了:
Error in InterfaceObj$doAPICall(cmd, params, method, ...) :
OAuth authentication is required with Twitter's API v1.1
我一直在研究这意味着什么。我觉得我的OAuth身份验证是合适的。为什么我会收到此错误?
我使用的API版本是否存在问题?
答案 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
答案 1 :(得分:1)
我看到你成功访问(又名握手)。我假设您的握手代码与下一行类似。
Cred$handshake(cainfo = system.file("CurlSSL", "your_certificate.pem", package = "RCurl") )
然后我假设您使用以下行注册了Twitter OAuth,您说它已成功。
registerTwitterOAuth(Cred)
然后您的 userTimeline 应包含您之前创建的 pem 文件。
my_tweets <- userTimeline('someTimeline', cainfo="your_certificate.pem", n=200)