2015-02-23 125 views
1

我想使用streamR和所需的ROAuth包连接到twitter的流媒体API。我按照文档here的确切步骤进行操作,但是当完成所有步骤且没有错误时,我会在拨打filterStreamsampleStream时收到401未授权错误。401未经授权的错误使用streamR

这里有看似细微的工作步骤:

library(ROAuth) 
library(streamR) 

requestURL <- "https://api.twitter.com/oauth/request_token" 
accessURL <- "https://api.twitter.com/oauth/access_token" 
authURL <- "https://api.twitter.com/oauth/authorize" 
consumerKey <- "--redacted--" 
consumerSecret <- "--redacted--" 

my_oauth <- OAuthFactory$new(consumerKey = consumerKey, 
          consumerSecret = consumerSecret, 
          requestURL = requestURL, 
          accessURL = accessURL, 
          authURL = authURL) 

my_oauth$handshake(cainfo = system.file("CurlSSL", "cacert.pem", package = "RCurl")) 

当我运行最后一行打开一个浏览器窗口,它要求我授权该应用使用我的Twitter帐户。当我点击授权时,出现提示“完成时,记录提供给您的PIN并在此提供PIN码后,出现我将其复制/粘贴到Rstudio中的PIN”:

运行上述命令后,我发送这样调用到filterStreamfilterStream(file.name = "test_tweets.json", track = c("sat"), timeout = 120, oauth = my_oauth)

生成的文件test_tweets.json写着:Problem accessing '/1.1/statuses/filter.json'. Reason: Unauthorized

要解决我试图创建一个新的Twitter的应用程序,更新R和所有包的问题。这些行动都没有产生任何不同的结果。另外,我尝试了twitteR包的相同凭据,该包运行良好,但不幸的是,我需要连接到通过twitteR包无法使用的流api。任何提示非常感谢!

注意这个问题是有关,但不同,this unanswered question.

+0

您是否找到解决方案?我面临同样的问题。 – Kishore 2016-02-27 22:59:27

回答

0

无论出于何种原因,创建固定这个问题的一个新的Twitter账户;但只有在我将手机与该帐户相关联后,才能检查移动通知部分中的所有框。奇怪,但它的工作。我得到它的工作后,我能够取消选中通知,它仍然工作。

亲爱的读者,同行的神秘错误接收器,并不孤单:http://xkcd.com/979/

0

当你从阅读改变你的Twitter的许可,您需要重新生成customerKey和customerSecret - 写为读写和直接信息。

相关问题