1

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 を記録し、ここに入力してください:」というプロンプトが表示された後、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

この問題を解決するために、新しい Twitter アプリを作成し、R とすべてのパッケージを更新しようとしました。これらのアクションのいずれも、異なる結果をもたらしませんでした。さらに、twitteRパッケージで同じ資格情報を試してみましたが、うまくいきましたが、残念ながら、twitteRパッケージからは利用できないストリーミング API に接続する必要があります。どんなヒントでも大歓迎です!

この質問は、この未回答の質問に関連していますが、異なることに注意してください。

4

2 に答える 2

0

なんらかの理由で、新しい Twitter アカウントを作成すると、この問題は解決しました。ただし、電話をアカウントに関連付け、モバイル通知セクションのすべてのボックスをチェックした後でのみ. 奇妙ですが、うまくいきました。機能するようになった後、通知のチェックを外すことができましたが、それでも機能しました。

あなた、読者、仲間のミステリアスなエラーレシーバーは一人ではありません: http://xkcd.com/979/

于 2015-03-02T00:45:11.227 に答える
0

Twitter のアクセス許可を読み書きから読み書きおよびダイレクト メッセージに変更する場合は、customerKey と customerSecret を再生成する必要があります。

于 2016-06-09T10:10:28.747 に答える