401使用streamR的未经授权的错误

时间:2015-02-23 16:46:54

标签: r twitter twitter-oauth roauth

我正在尝试使用streamR和所需的ROAuth包连接到twitter的流API。我遵循文档here中的确切步骤,但是当我完成所有步骤且没有错误时,我在致电filterStreamsampleStream时收到401 Unauthorized错误。

以下是看似正常的步骤:

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中

运行以上几行后,我发送了一个这样的电话给filterStream:     filterStream(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.

有关,但有所不同

2 个答案:

答案 0 :(得分:0)

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

你,读者,神秘错误接收者,并不孤单:http://xkcd.com/979/

答案 1 :(得分:0)

当您将Twitter权限从读写更改为读写和直接消息时,您需要重新生成customerKey和customerSecret。