簡體   English   中英

使用streamR 401未經授權的錯誤

[英]401 Unauthorized error using streamR

我正在嘗試使用streamR和必需的ROAuth包連接到twitter的流API。 我遵循此處文檔中的確切步驟,但是當我完成所有步驟且沒有錯誤時,調用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時,出現以下提示,我將其復制/粘貼到Rstudio中:“完成后,記錄提供給您的PIN並在此處提供:”

在運行完上述行之后,我將向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 Problem accessing '/1.1/statuses/filter.json'. Reason: Unauthorized

為了解決該問題,我嘗試創建一個新的Twitter應用程序,更新R和所有軟件包。 這些動作均未產生任何不同的結果。 此外,我使用twitteR軟件包嘗試了相同的憑據,效果很好,但不幸的是,我需要連接到twitteR軟件包無法使用的流api。 任何提示,不勝感激!

請注意,此問題與未解答的問題有關,但有所不同

無論出於何種原因,創建一個新的twitter帳戶都可以解決此問題; 但只有在我將手機與該帳戶相關聯並選中了移動通知部分中的所有復選框之后, 奇怪,但它奏效了。 工作正常后,我便可以取消選中通知,但該通知仍然有效。

讀者,同伴,神秘錯誤接收者並不孤單: http : //xkcd.com/979/

將Twitter權限從“讀取-寫入”更改為“讀寫”和“直接消息”時,需要重新生成customerKey和customerSecret。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM