Twitter クライアント開発に学ぶ Java GUI (Swing) プログラミング

page:4/X
author:nobuoka
date:2009.09.10

目次

外部ライブラリの読み込み・使用

ここからいよいよ Twitter からデータを取得するということを行います。 Twitter のデータを取得するために Twitter API というものが公開されているのですが、Twitter API を Java で簡単に扱えるようにした Twitter4J というライブラリ (Twitter API の wrapper) がありますのでそれを使用することにします。

Add Dependency

まずはライブラリ Twitter4J の取得を行わなければいけません。 ここで Maven が役立ちます。

#2 Maven Project の作成 で作った TwitterClient というプロジェクトの中の "pom.xml" を右クリックします。 右クリックメニューの中の "Maven" -> "Add Dependency" を選択してください。

検索画面が表示されますので、「twitter」 というキーワードを入力してください。 いくつかのプロジェクトが表示されると思います。 その中の "twitter4j" というものを選択して "OK" を押してください。

これで自分のプロジェクト内で Twitter4J を使用することができるようになりました。

Twitter の TL (タイムライン: 発言の流れ) を取得するクラス TLGetter の作成

クラスの作成を行います。 プロジェクトの "src/main/java" の中の "info.vividcode.twitter" (各自が入力したパッケージ名) を右クリックして右クリックメニューを開きます。 "New" -> "Class" を選択します。

作成するクラスの情報を入力する画面が開きます。 Package などは既に入力されています (パッケージを右クリックして作成画面を開いたため) ので、今回はクラス名 (Name) だけ入力すればよいです。 TL を取得するクラスなので、クラス名は "TLGetter" にしましょう。

"Finish" を押せばクラスが作成されます。

今後もクラスを作成するときは同じような手順でクラスの作成を行ってください。 今回は Package を変更しませんでしたが、Package の変更も簡単にできます。

TLGetter のコーディング

先ほど作成したクラス TLGetter のコーディングを行います。 とりあえずフレンドを含めた TL の直近 20 件を取得する getFriendsTL メソッドを作成します。 下記のようにコードを書いてください。

package info.vividcode.twitter;

public class TLGetter {
    
    public List<Status> getFriendsTL() {
        // アカウント情報を与え, Twitter との接続を得る
        // account と password は各自のものを入力
        Twitter twitter = new Twitter( "account", "password" );
        // TL の POST 一覧を格納する変数
        List<Status> statuses = null;
        try {
            // 直近 20 件の発言を取得
            statuses = twitter.getFriendsTimeline();
        } catch( TwitterException e ) {
            e.printStackTrace();
        }
        return statuses;
    }
    
}

そのままだと、各種クラスの下に赤の波線が表示されて、エディタの左端に赤いバツ印のアイコンが現れると思います。 これは、クラスのインポートを行っていないにもかかわらず、パッケージを省略してクラスを使用しているためです。 左端のバツ印のアイコンをクリックすると問題解決のための選択肢が現れます。 クラスのインポートを行うための選択肢がありますので、それを選択してください。 (クラス List については複数の候補がありますが、"java.util.List" を選択してください。)

そうすると import 文が追加され、結局コードは以下のようになります。

package info.vividcode.twitter;

import java.util.List;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;

public class TLGetter {
    
    public List<Status> getFriendsTL() {
        // アカウント情報を与え, Twitter との接続を得る
        // account と password は各自のものを入力
        Twitter twitter = new Twitter( "account", "password" );
        // TL の POST 一覧を格納する変数
        List<Status> statuses = null;
        try {
            // 直近 20 件の発言を取得
            statuses = twitter.getFriendsTimeline();
        } catch( TwitterException e ) {
            e.printStackTrace();
        }
        return statuses;
    }
    
}

main 関数の変更・実行

TLGetter クラスを作っても、使わなければ意味がありません。 App クラス内の main 関数を変更して、TLGetter クラスを使用します。 App クラスを以下のように変更してください。

package info.vividcode.twitter;

import java.util.List;

import twitter4j.Status;

public class App {
    public static void main( String[] args ) {
        // TLGetter クラスのインスタンス化
        TLGetter tlg = new TLGetter();
        // Friends の TL 取得
        List<Status> posts = tlg.getFriendsTL();
        // TL の Post を 1 個ずつ表示
        for( Status p : posts ) {
            System.out.println( p.getUser().getName() + ": " + p.getText() );
        }
    }
}

実行すると、コンソールに Twitter の TL が表示されます。

Google Adsense!!