TwitteR setup_twitter_oauth()失败

时间:2015-06-30 02:16:19

标签: r twitter twitter-oauth

我正在关注软件包的插图,更新并加载了所有必需的软件包,似乎这是一个非常直接的进行身份验证的过程。相反,我收到错误

> setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)
[1] "Using direct authentication"
Error in check_twitter_oauth() : OAuth authentication error:
This most likely means that you have incorrectly called setup_twitter_oauth()'

我的释义和编辑程序看起来或多或少就像这样。

library("twitteR")
download.file(url="http://curl.haxx.se/ca/cacert.pem", destfile="cacert.pem") #read this was necessary for Windows machines
consumer_key <- 'abc'
consumer_secret <- 'abc'
access_token <- '123-abc'
access_secret <- 'abc'
setup_twitter_oauth(consumer_key, consumer_secret, access_token, access_secret)

我在这个主题上阅读了很多其他的SO问题,没有解决我的问题(大多数人都使用旧的身份验证过程)。我正试图在this tutorial之后创建一个wordcloud。

11 个答案:

答案 0 :(得分:19)

只需(安装并)加载包'base64enc'。

答案 1 :(得分:3)

只需检查防火墙设置并允许R通过。

我尝试了所有关于包装等的不同解决方案。它们都没有奏效。我终于发现它只是一个简单的防火墙问题。我建议所有遇到此问题的人首先检查他们的防火墙设置。确保在通过防火墙允许的应用程序列表中添加了R.这应该可以解决问题。

答案 2 :(得分:2)

install.packages(&#34; base64enc&#34;)是我解决这个问题的原因。

答案 3 :(得分:2)

我必须进行以下设置才能完成这项工作

包版本:  base64enc_0.1-3 httr_1.2.1 twitteR_1.1.8

使用命令安装twitteR: devtools :: install_github(“jrowen / twitteR”,ref =“oauth_httr_1_0”)

我有一个现有的应用程序没有工作,所以我继续在Twitter上创建一个新的应用程序。

这种组合对我有用

答案 4 :(得分:1)

我遇到了同样的问题,经过这么多尝试。

我发现了这个问题https://github.com/geoffjentry/twitteR/issues/90,其中包括&#39; jrowen&#39;建议解决我的问题的解决方法。问题显然是由新的httr包引起的,但解决方法是使用此命令从GitHub而不是cran存储库安装twitteR包:

devtools::install_github("jrowen/twitteR", ref = "oauth_httr_1_0")

此后,OAuth身份验证错误的问题消失了。希望这也适合你。

答案 5 :(得分:1)

尝试重新生成使用者密钥和access_token密钥。我也遇到过类似的问题。没有解决我的问题。但是在我重新生成按键并使用新按键之后,它就解决了,并且很有效。

答案 6 :(得分:1)

我在这里尝试了所有的建议,但令人惊讶的是没有一个对我有用。有人可能会遇到与我相同的情况,所以我回答了对我有用的东西 - 似乎问题出在直接身份验证上,所以我按照以下步骤(这需要一个拥有openssl包)与twitteR包一起安装和加载;

确保您已创建twitter API并拥有consumerkey和consumerSecret代码,并且最好使用默认Web浏览器保持登录到Twitter

packages <- c("twitteR", "openssl")
### checking if packages are already installed and installing if not
for(i in packages){
    if(!(i %in% installed.packages()[, "Package"])){
        install.packages(i)
    }
library(i, character.only = TRUE) ## load packages
}

setup_twitter_oauth(consumer_key, consumer_secret) ## do not input the access_token and access_secret

这将使用成功的身份验证消息打开您的默认浏览器。您现在可以关闭浏览器并继续使用R。

来浏览推文

答案 7 :(得分:0)

我使用了不同的无线网络(不太安全),这对我有用

答案 8 :(得分:0)

添加代理修复了我的问题 希望这会有其他一些问题得到修复

如果您已有代理,则输入以下行:

proxy_url <- "http://127.0.0.1:61387/"
Sys.setenv(http_proxy = proxy_url, https_proxy = proxy_url, ftp_proxy = proxy_url)

注意:将设置更改为您自己的

答案 9 :(得分:0)

遇到同样的问题。然后意识到我没有登录Twitter(从默认浏览器)。登录到Twitter,一切正常。

答案 10 :(得分:-1)

我遇到的问题是我的卷曲已经过时,因此无法验证它收到的SSL证书。我所要做的就是更新卷曲(如果您正在使用anaconda,只需conda update curl),之后oauth就能完美地工作。