【Twitter4J】Twitterの全ユーザーの公開ツイート(日本のみ)を表示する方法(その2、Streaming APIのsample)
2012-05-04 (金) 11:30 Twitter4J
その1に続いてTwitterの全ユーザーの公開ツイート(日本のみ)を表示する方法についての2つ目の方法です。
今回はStreaming APIのsampleを使います。
参考にしたのは以前購入した「Twitter API ポケットリファレンス」です。
Twitter API ポケットリファレンス (POCKET REFERENCE)
(2011/07/15)
山本 裕介
商品詳細を見る
Twitter Streaming APIとは、データ解析などで大量のデータを必要とする開発者のために用意されたAPIで、一度接続するとHTTP接続を保ったまま自動的にデータを流し続けてくれます。
Streaming APIには次の種類があります。
1.Streamed Tweets…パブリックなツイートを取得
・sample…パブリックなツイートから約1%のツイート
・firehose…すべてのパブリックなツイート
・filter…指定した条件にマッチするツイート
・links…リンクを含むツイート
・retweet…リツイート
2.ユーザーストリーム…ユーザーのタイムライン、@関連、DMなどを取得
3.サイトストリーム…多数のユーザーのタイムライン、@関連、DMなどを受信
多数のユーザー向けのWebサービス用
単にTwitterの全ユーザーの公開ツイートがほしい場合はsample、firehoseとなります。
ただ、firehoseはグーグルなどの一部の大企業が大金を払って手に入れることができるだけなので個人で行う場合はsampleを使うことになります。
全体の約1%のツイートになりますが、常時データを取得できるので少ないと考えるか十分と考えるかは時と場合によりますね。
ではコードです。
import twitter4j.*;
public class TwitterSampleStream {
public static void main(String[] args){
try{
//自動的に認証してくれる
//(バージョン2.2.4以降はgetInstance()ではなくgetSingleton()を推奨)
new TwitterStreamFactory();
TwitterStream twitterstream = TwitterStreamFactory.getSingleton();
twitterstream.addListener(new MyStatusAdapter());
twitterstream.sample();
} catch(Exception e){
e.printStackTrace();
}
}
}
//コンソールに出力する
class MyStatusAdapter extends StatusAdapter {
public void onStatus(Status status){
//ユーザの情報を取得
User user = status.getUser();
//日本のもののみを抽出
//「その1」での方法を参照
//ツイートから改行記号を除去(半角スペースに変換)
String strText = status.getText();
strText = strText.replaceAll("\r\n"," ");
strText = strText.replaceAll("\r"," ");
strText = strText.replaceAll("\n"," ");
//ツイートからタブ記号を除去(半角スペースに変換)
strText = strText.replaceAll("\t"," ");
//コンソールに出力する(タイムゾーン、位置情報、日時、ユーザ名、ツイート)
System.out.println(user.getTimeZone() + "\t" + status.getGeoLocation() + "\t" + status.getCreatedAt() + "\t" + user.getScreenName() + "\t" + strText);
}
}
「日本のもののみを抽出」する箇所については、その1での方法を参照してくださいね。
↓この記事が参考になったら拍手をクリックお願いします。今後のブログ作りに役立てたいので。
- 関連記事
-
- 【Twitter4J】Streaming APIのsampleで各ツイートのlang(言語情報)を取得する方法 (2013/04/29)
- ある地点の近傍のツイートの取得方法!setGeoCodeや計算による半径の指定とGeohash(ジオハッシュ)による矩形の指定 #Twitter4J (2012/12/02)
- 【Twitter4J】Twitterの全ユーザーの公開ツイート(日本のみ)を表示する方法(その2、Streaming APIのsample) (2012/05/04)
- 【Twitter4J】Twitterの全ユーザーの公開ツイート(日本のみ)を表示する方法(その1、PublicTimeline) (2012/05/04)
- 【Twitter4J】検索してその結果を表示する方法 (2012/05/02)