我正在尝试使用twitteR验证Rstudio到Twittter。
握手后我才出错。
我的代码是:
#install(rcurl, ROAuth, twitteR)
#load(rcurl, ROAuth, 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 <- "key"
consumerSecret <- "secret key"
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()
我得到握手,它将我发送到Twitter的auth页面。我授权并获得一个别针。
我在此代码中输入了引脚:
registerTwitterOAuth(pin number here)
然后我返回“错误:未经授权”。
我添加了一个新的Twitter应用程序帐户,并获得了一组不同的客户密钥,但仍然保持不变。
答案 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的最后一个版本是1.1.7 =&gt; http://cran.r-project.org/web/packages/twitteR/index.html
答案 1 :(得分:2)
按照以下步骤,我的代码在通过网络尝试从每个可能的资源建议后工作!我使用Windows 7,64位和RStudio作为下面的代码
确保您安装了所有合适的套餐 - ROAuth,twitteR,RCurl;通常,CRAN页面上指示的依赖项将指向缺少的包(如果有的话)
全局设置SSL证书,如代码所示;我不是一个专家,为什么这是必需的,但它&gt;帮助我通过使用download.file命令下载cacert.pem文件来获取我的代码确保您的Twitter应用程序具有完全读写访问权限,而不仅仅是默认的只读访问权
与Twitter链接的最终守则
获取合适的图书馆
library(twitteR)
library(ROAuth)
library(RCurl)
全局设置SSL证书
options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile="cacert.pem")
如果您从某处复制了代码,请确保网址是https而不是http
reqURL <- "https://api.twitter.com/oauth/request_token"
accessURL <- "https://api.twitter.com/oauth/access_token"
authURL <- "https://api.twitter.com/oauth/authorize"
consumerKey <- "====="
consumerSecret <- "====="
twitCred <- OAuthFactory$new(consumerKey=consumerKey,
consumerSecret=consumerSecret,
requestURL=reqURL,
accessURL=accessURL,
authURL=authURL)
#twitCred <- getTwitterOAuth(consumer_key= consumerKey, consumer_secret=consumerSecret)
twitCred$handshake()
此时您需要将网址粘贴到浏览器中,该浏览器将使用您的&gt;打开推文页面。应用程序 - 您需要从那里获取PIN并将其粘贴到R控制台
registerTwitterOAuth(twitCred)
TESTTHE CODE:现在你可以测试代码了
testSearch = searchTwitter("#food", n = 10, cainfo="cacert.pem")
Moditweets <- searchTwitter("#Narendra Modi", n = 100)
答案 2 :(得分:0)
以下为我工作,Windows 8,请注意,身份验证必须在cmd中完成,它不能通过Rstudio IDE进行,您想要将R语言验证为
#Open admin shell: In the Start Search box, type cmd, and then press CTRL+SHIFT+ENTER.
#Goto C:/...R../bin/x64, run ./r.exe
install.packages("twitteR") #Takes some time for mirrors to pop-up
library(twitteR)
library(ROAuth)
library(RCurl)
download.file(url="http://curl.haxx.se/ca/cacert.pem",destfile="cacert.pem")
requestURL <- ...
accessURL <- ...
authURL <- ...
consumerKey <- ...
consumerSecret <- ...
twitCred <- OAuthFactory$new(consumerKey=consumerKey, consumerSecret=consumerSecret,
requestURL=requestURL, accessURL=accessURL, authURL=authURL)
twitCred$handshake(cainfo="cacert.pem")
registerTwitterOAuth(twitCred)
save(list="twitCred", file="twitteR_credentials")
## Now to get some tweets, place the files cacert.perm and
twitteR_credentials from bin folder to the the current working directory of Rstudio
library (twitteR)
load("twitteR_credentials")
registerTwitterOAuth(twitCred)
searchTwitter('#Obama', cainfo="cacert.pem", n=5, locale = 'en')