我正在尝试使用 streamR 和所需的 ROAuth 包连接到 Twitter 的流 API。我遵循此处文档中的确切过程,但是当我完成所有步骤且没有错误时,我在调用filterStream
或时收到 401 Unauthorized 错误sampleStream
。
以下是似乎可以正常工作的步骤:
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。非常感谢任何提示!
请注意,这个问题与这个未回答的问题有关,但又有所不同。