【问题标题】:Twitter Authentication in RR 中的 Twitter 身份验证
【发布时间】:2014-12-28 19:41:48
【问题描述】:

试图让 Twitter 身份验证在 R 中工作(用于分析推文),但 RStudio 不响应 PIN + 获取错误消息。

我使用 Mac OS X 10.6.8 和 RStudio 版本 0.98.1091

这是我正在使用的代码(包括占位符):

install.packages("twitteR")
library(twitteR)
download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile="my_folder/my_subfolder/http://curl.haxx.se/ca/cacert.pem")


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

我明白了: “要启用连接,请将您的网络浏览器定向到: https://api.twitter.com/oauth/authorize?oauth_token=bWNevwJNJUPEzKLJwHQsK2uRLN4At5LO 完成后,记录给您的 PIN 并在此处提供:registerTwitterOAuth(Cred) 错误:需要授权”

当我在控制台中输入 PIN 时,我只得到这个:

>1234567

[1] 1234567

然后我尝试运行 registerTwitterOAuth(Cred),但在控制台中获取:

Error in registerTwitterOAuth(Cred) : 
  oauth has not completed its handshake

不确定我做错了什么或如何获得身份验证/授权。

非常感谢您对此提供的任何帮助。

【问题讨论】:

  • 如果您按照GitHub page 上的说明进行操作会怎样?
  • 嗯,试过但得到这个:[1]“使用基于浏览器的身份验证”显示 Traceback Rerun with Debug Error in xor(is.null(url), is.null(handle)):不能查找函数“oauth_endpoints”
  • 你是否也执行了install.packages(c("devtools", "rjson", "bit64", "httr"))? Afaik oauth_endpoints() 是最新的 httr 软件包的一部分。
  • 是的,我做到了。我想知道是不是因为我在 Twitter 应用程序下有两个帐户。可能是两个不同的 api key 和 api secret 有冲突?

标签: r twitter


【解决方案1】:

试试这个

library(httk)
library(httpuv)

#browser based authentication
consumer_key <- "xxxxxxxxxxxxxxxxxxxx"
consumer_secret<- "xxxxxxxxxxxxxxxxxxxxxxxxx"
setup_twitter_oauth(consumer_key, consumer_secret, access_token=NULL,access_secret=NULL)

【讨论】:

    【解决方案2】:

    我在 Windows 操作系统中使用以下方法进行 Twitter 身份验证,它工作正常。也许它给了一些方向!

    library(RCurl)
    library(twitteR)
    
    
    options(RCurlOptions = list(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")))
    reqURL <- "https://api.twitter.com/oauth/request_token"
    accessURL <- "https://api.twitter.com/oauth/access_token"
    authURL <- "https://api.twitter.com/oauth/authorize"
    consumerKey <- "insert your consumer key here"
    consumerSecret <- "insert your consumer secret here"
    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)
    

    【讨论】:

    • 感谢您的帮助!不幸的是,它看起来也不是这样。相同的错误信息。我想知道是因为我使用的是 RStudio 而不仅仅是 R。还是我使用的是 Mac?
    • 嗯,使用上面的代码,我可以在 Windows XP 和 RStudio 中成功完成我的 Twitter 身份验证。
    • 感谢您告诉我。至少我可以继续使用 RStudio。这真的很奇怪。
    【解决方案3】:

    我终于明白了!运行代码后控制台不允许我复制 url,所以我必须手动输入带有唯一令牌的 url。我没有意识到这一点。这有点麻烦,但至少它有效。我遇到了其他问题,我在 StackOverflow 的其他地方读到过,可能是 Mac 操作系统的问题,所以这也可能与它有关。 RStudio 似乎不太适合 Mac。

    感谢大家的帮助!

    【讨论】:

      【解决方案4】:

      确保您在 Twitter 开发者的应用程序设置中输入:

      【讨论】:

        猜你喜欢
        • 2015-03-22
        • 1970-01-01
        • 2016-02-23
        • 2013-07-05
        • 2011-10-05
        • 2011-06-18
        • 2013-04-11
        • 2011-04-25
        • 2011-06-10
        相关资源
        最近更新 更多