【Twitter4J】Twitterの全ユーザーの公開ツイートを表示する方法
Twitter4Jを用いて、Twitterの全ユーザーの公開ツイートを取得する方法です。
Streaming APIのsampleを使います。
Twitter Streaming APIとは
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();
//ツイートから改行記号を除去(半角スペースに変換)
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);
}
}
応用
てぃーはこの方法を応用して、ツイッターの曜日別ツイートやよく使われるアプリなどを分析しています。分析結果はネットで評判になったり、学術研究に利用されています!
→【分析】ツイッター分析のシリーズの目次 by Twitter4J - creativi.tea
Author And Source
この問題について(【Twitter4J】Twitterの全ユーザーの公開ツイートを表示する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/teapipin/items/f622b9bb44b98c3e0eb1著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .