でインスタンスを作ってTwitter tw = new TwitterFactory().getInstance();
でtwitter4jのstatus型のデータが入ったリストを得る。あとはそれを出力するなり、処理をする。 問題は自分のアカウントでログインしてタイムラインを参照したり、ツイートする場合。 これは一度Twitterサイトで自分のアプリを認証させないといけないらしい。 OAuth認証とxAuth認証の二つがあるようだけど、xAuthの方はサイトにアプリの登録手続きのあとさらにメールを送って許可を得ないといけないらしいのでOAuth認証にする。 すぐに認証できるので簡単なのだが、検索してみると個人の場合は自分のサイトや組織などは空欄でいいと書いてあるところもあるが、実際はサイトは入力しなくてはいけない。 あと、Twitterやtwitterという文字はアプリの名前には含めてはいけない。 検索でヒットするいくつかのサンプルにはクラス名がTwitterを含んでいることがあるからそのまま使って作ったプログラムを登録しようとすると引っかかる。 登録できたら、登録後のページにあるConsumer KeyとConsumer Secretというところの暗号のような文字列をメモしておいて、つくろうとしているJavaアプリのソースに入力する。 しかし、この二つの値をどこに記録するかが面倒でした。 本家のサンプルコードのページにはその名のとおりサンプルのソースがある。 ただ、tw.getUserTimeLine("username");
サンプルコードを動作させるには OAuth の認証情報を twitter4j.properties 記載しておく必要があります。と書かれてある。 別ファイルをテストの段階で作るのも面倒なので、ソースでこの二つを引数で渡せないかと思って別のサイトを検索してみると Twitter4Jを使ったTwitterのOAuth認可サンプル(NI-Lab.'s ヅラッシュドット)が見つかった。 しかし、ここの
が今のtwitter4jには無いみたい。 どうするのかと思っていろいろ探したのだけど、結局、さっきの本家サンプルコードのページにOAuth認可のセクションがあって、 Twitter#setOAuthConsumer()を使うとありました。 いやあ、長かった。 結論としてはヅラッシュドットのサンプルのソースのfactory.getOAuthAuthorizedInstance(consumerKey, consumerSecret);
をTwitter twitter = factory.getOAuthAuthorizedInstance(consumerKey, consumerSecret);
に変更すればいいだけでした。 JavaDocをきちんと理解できればこんなことにはならないんですけどね。。。 とにかく表示はできたからよしとしよう。Twitter twitter = factory.getInstance(); twitter.setOAuthConsumer(consumerKey, consumerSecret);