私は問題なしでしばらくの間、Twitter Streaming APIを使用していましたが、最近はRESTを使用するように切り替わりました。Ruby on Rails - Twitter Gemで検索を繰り返す際の問題
私は#vietnamを使用してつぶやきの結果を繰り返し処理しようとしています。 reading the documentationの後、私はmax_idを使ってこれを行うべきです。ここで
max_id = 70978401017678643100000000000000 #very big number to start out with
i = 1
2.times do
puts '----------SEARCHING WITH MAX_ID: ' + max_id.to_s
$twitter.search('#vietnam', result_type: "recent", lang: 'en', geocode: "14.05832400,108.27719900,100000mi", count: 100, max_id: max_id).each do |tweet|
puts "#{i} - tweet.id: " + tweet.id.to_s
i += 1
max_id = tweet.id if tweet.id < max_id
end
end
は、端末からの結果である:
----------SEARCHING WITH MAX_ID: 70978401017678643100000000000000
1 - tweet.id: 713034427027361794
2 - tweet.id: 713030624164982785
3 - tweet.id: 713027195015413760
4 - tweet.id: 713022173246582784
5 - tweet.id: 713021690989641728
6 - tweet.id: 713013561396764672
7 - tweet.id: 713010847166177280
8 - tweet.id: 712997640930197505
...
341 - tweet.id: 709784010176786432
----------SEARCHING WITH MAX_ID: 709784010176786432
342 - tweet.id: 709784010176786432
検索クエリでのジオコードは私の結果は場所によって制限されていないことを確認するために、ベトナムの中央〜100,000マイルの半径を持っています。問題は、2回目の反復では、結果は1つのツイートを返すだけで、最後の結果からmax_idが返されることです。
Twitterの高度な検索機能によって検証として、私は、英語で#vietnamとより341件のツイートはあり知って: https://twitter.com/search-advanced?lang=en
私の反復法の何が問題になっているのですか?
私はそれがあなたを7日間前に制限したとは考えていませんでした。過去にさらに見えるものはありますか?私たちは歴史的な見解を探しています。 – CHawk
@ CHawk私は恐らく検索ではない。特定のユーザーのつぶやきをさらに後に戻すことができますが、それはそれについてです。 Twitterは、ツイート履歴全体にアクセスすることについてかなり制限的です。もっと見ることができるようにする[いくつか](http://sifter.texifter.com/)[sites](https://gnip.com/historical/)がありますが、かなりコストがかかる傾向があります。つぶやきの作成を開始し、今後の履歴を構築することもできますが、それはおそらくそれほど有用ではないことに応じて行います。 – emma
私はライブストリームを見ることができ、最後の数時間で100 +があったので、最後の7日間に#vietnamで341のつぶやきしかないということが奇妙に私を襲った。ところで、 'geocode:" 14.05832400,108.27719900,100000mi "'は、返されるジオコーディングが付いたつぶやきのみを返し、先週の341つのツイートにジオコーディングがあったようです。私が探していた結果ではありませんが、あなたは正しいです! +50 – CHawk