我正在尝试使用R和twitteR包来分析一些推文。握手和注册码似乎工作正常,我从R获得授权链接。但是,当我输入从https://api.twitter.com/oauth/authorize获得的PIN时,我得到一个“禁止错误”。任何帮助表示赞赏。
守则:
TwitterOAuth<-function(){
reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL <- "http://api.twitter.com/oauth/access_token"
authURL <- "http://api.twitter.com/oauth/authorize"
consumerKey <- "xxxxxxxxxxxxxxxx"
consumerSecret <- "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
twitCred <- OAuthFactory$new(consumerKey=consumerKey,
consumerSecret=consumerSecret,
requestURL=reqURL,
accessURL=accessURL,
authURL=authURL)
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
twitCred$handshake()
registerTwitterOAuth(twitCred)
}
回应:
TwitterOAuth对象() 要启用连接,请将您的网络浏览器指向: http://api.twitter.com/oauth/authorize?oauth_token=X0AwET4FXBC7YRIWWN3iF61WFNE1DjxbfibqtfFjgcc
完成后,记录给您的密码并在此处提供:1998913
错误:禁止
我的sessionInfo()
R版本3.0.2(2013-09-25) 平台:x86_64-w64-mingw32 / x64(64位)
区域设置: [1] LC_COLLATE = Turkish_Turkey.1254 LC_CTYPE = Turkish_Turkey.1254 LC_MONETARY = Turkish_Turkey.1254 [4] LC_NUMERIC = C LC_TIME = Turkish_Turkey.1254
附加基础包: [1] stats graphics grDevices utils数据集方法库
其他附件包: [1] twitteR_1.1.7 rjson_0.2.13 ROAuth_0.9.3 digest_0.6.4 RCurl_1.95-4.1 bitops_1.0-6
通过命名空间加载(而不是附加): [1] tools_3.0.2
答案 0 :(得分:24)
将您的访问网址从http更改为https。
答案 1 :(得分:7)
您可以按照此步骤操作(请不要忘记,有效网址是使用https):
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)
答案 2 :(得分:3)
基于此博客:http://thinktostart.wordpress.com/2013/05/22/twitter-authentification-with-r/
library(RCurl)
# Set SSL certs globally
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
require(twitteR)
reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL <- "https://api.twitter.com/oauth/access_token"
authURL <- "https://api.twitter.com/oauth/authorize"
consumerKey <- "yourconsumerkey"
consumerSecret <- "yourconsumersecret"
twitCred <- OAuthFactory$new(consumerKey=consumerKey,consumerSecret=consumerSecret,requestURL=reqURL,accessURL=accessURL,authURL=authURL)
twitCred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))
registerTwitterOAuth(twitCred)
答案 3 :(得分:0)
我有同样的“错误:禁止”响应,并且今天没有解决它(虽然我以前做过)。
我的Windows 8.1系统的R脚本也包含以下行:
download.file(url =“http://curl.haxx.se/ca/cacert.pem”,destfile =“cacert.pem”)
我在网上发现了这条评论,“这是Windows的必要步骤”
大约三天前,我在输入在线密码后成功访问了Twitter,但今天我不能。
答案 4 :(得分:0)
Cookie可能是问题:我发生了同样的事情,当我在另一个浏览器中关注twitcred$handshake()
给出的链接时,这个问题已得到解决;即,我一直在尝试使用Safari,但之后在Chrome中尝试了一次,我在Chrome中收到的PIN在R中没有遇到任何问题。