【问题标题】:twitteR and ROAuth推特和 ROAuth
【发布时间】:2012-03-11 12:05:09
【问题描述】:

我目前正在尝试从 R 发送推文,但我无法绕过以下错误:

Error in .self$twFromJSON(out) : 
  Error: Could not authenticate with OAuth.

我已按照 twitteR 小插图中的指示和有关此事的其他 stackoverflow 问题 (http://stackoverflow.com/questions/8122879/roauth-on-windows-using-r),但似乎没有解决这个错误。这是我正在使用的代码:

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 = "*****************************"
consumerSecret = "************************"
Cred <- OAuthFactory$new(consumerKey=consumerKey,
                             consumerSecret=consumerSecret,
                             requestURL=requestURL,
                             accessURL=accessURL, 
                             authURL=authURL)
Cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl"))
registerTwitterOAuth(Cred)

通过这里工作。 registerTwitterOAuth 返回 TRUE,因此您会认为一切正常。但是当我尝试发送推文时,我收到了上面列出的错误。

我正在尝试通过以下方式发送推文:

tweet("text to tweet")

这会导致:

Error in .self$twFromJSON(out) : 
  Error: Could not authenticate with OAuth.

不知道出了什么问题。 OAuth 验证似乎有效,但随后我无法发送推文。

【问题讨论】:

    标签: r twitter twitter-oauth


    【解决方案1】:

    希望在我昨天刚刚上传的版本中得到解决。如果您还没有使用 0.9.1 版本的 ROAuth,可以更新您的软件包并重试吗?

    【讨论】:

    • 我实际上是在 Windows 上,并且看起来 Windows 二进制文件的最新版本是 0.9.0。
    • 再过几天吧,Win 和 Mac 版本需要一段时间才能赶上 CRAN - 不同的人管理这些存储库。
    • 谢谢,我过几天看看有没有更新。
    • 原来我的 twitteR 包不是最新的。更新到最新版本后,我现在在此步骤后收到错误:Cred$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")) 导致此错误:无效来自网站的回复,请检查您的consumerKey 和consumerSecret 并重试。我绝对确定消费者密钥和秘密是正确的,所以不确定发生了什么。 Cred$handshake() 也不起作用。
    • 我的 WAG 是它必须与 cainfo 合作。有可能我以某种方式破坏了它,尽管我不知道可以做到这一点(当然,如果我有这种能力,我永远不会有错误)。在这一点上,给我发电子邮件可能会更好,我们可以用长格式而不是通过 SO cmets 来解决 - 原始帖子中的问题肯定已在 0.9.1 中得到纠正,这似乎是另外一回事。
    【解决方案2】:

    我刚刚更新了 twitteRROAuth 包并运行了这些命令,一切都对我有用:

    cred = getTwitterOAuth(consumerKey, consumerSecret)
    registerTwitterOAuth(cred)
    tweet("something incredibly interesting...")
    

    似乎twitterR 现在提供了一个更简洁的接口来注册 OAuth 凭据,这不需要显式使用 OAuthFactory$newhandshake 调用。当我尝试显式调用这些函数时,事情开始出现问题。但是当我使用上面的界面时,一切都很顺利。

    【讨论】:

    • 尝试了建议的代码。执行“registerTwitterOauth”命令后收到以下错误:子字符串错误(摘要,(1:哈希长度)* 2 - 1,(1:哈希长度)* 2):无法打开文件'C:/R/R-2.15。 2/library/digest/R/digest.rdb': 没有那个文件或目录
    • @user2433346 不确定;我的测试是使用带有 R 3.0 的 OS X 10.6.8
    猜你喜欢
    • 2012-07-19
    • 2013-09-01
    • 2013-08-12
    • 2012-07-28
    • 2021-01-22
    • 2013-07-22
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    相关资源
    最近更新 更多