10分で出来る!初めてのTwitter4J & Twitterアプリ作り方メモ in 2015-10-18

最近はJava EE系でもJAX-RS研修の担当が多くなっている関係上、OAuthやRESTクライアントにも興味が出てきました。ということで、初めてTwitter4Jでプログラムを作ってみました。参考にしたのは、@kikutaro_さんのこちらのブログです。

Twitter4Jを使ったら10分でつぶやきJavaプログラムが作れました! ~NetBeans編~ - Challenge Java EE !

分かりやすくまとまっていて、基本的な手順は今も変わっていないのですが、管理画面のUIが変わっていたので、本日時点での画面キャプチャ付きで解説します。

目標

Twitter4Jを使って、Javaのmain()メソッドからつぶやきを送信する!

Twitter Developer登録

プログラムを作る前に、Twitter Developer登録を行って、アプリ開発に必要なアクセストークンなどの情報を取得します。この手順は、JavaやTwitter4Jによらないはずです。

まず、下記のTwitterのDeveloperサイトにアクセスします。

https://dev.twitter.com/

すると、トップ画面が表示されます。画面右上のリンクから、ご自分のTwitterアカウントでサインインしてください。このアカウントは、普段のつぶやきなどで使っているアカウントでOKです。

f:id:MasatoshiTada:20151018133412p:plain

トップ画面で下の方にスクロールして、[TOOLS]-[Managing Your App]をクリックします。

f:id:MasatoshiTada:20151018134406p:plain

すると、アプリケーションの管理画面に移ります。まだ何もアプリケーションを作っていないので、[Create New App]ボタンだけが表示されます。

f:id:MasatoshiTada:20151018134644p:plain

では、[Create New App]ボタンをクリックします。すると、アプリケーションの作成画面に移ります。適当なアプリケーション名、アプリの説明、自分のブログなどのURLを入力します。[Callback URL]は必須項目ではないので、今回は空欄のままにします。

f:id:MasatoshiTada:20151018134833p:plain

上記の画面で下の方にスクロールすると、[Developer Agreement]が記載されているので、内容を確認した上で[Yes, I agree]にチェックを入れて、[Create your Twitter app]ボタンをクリックします。

f:id:MasatoshiTada:20151018135333p:plain

そうすると、下記のような画面が表示されます。[Consumer Key]の部分は、後で使います。実際には英数字&記号の羅列が表示されていますが、秘密の情報のため画像を加工して伏せています。

f:id:MasatoshiTada:20151018143316p:plain

次に、この画面の[Keys and Access Tokens]タブをクリックします。表示されている[Consumer Key (API Key)]と[Consumer Secret (API Secret)]という2つの文字列は、後で使います。

f:id:MasatoshiTada:20151018143357p:plain

この画面で下の方にスクロールして、[Create my access token]ボタンをクリックします。

f:id:MasatoshiTada:20151018143448p:plain

画面が遷移するので、また下の方にスクロールすると、[Access Token]と[Access Token Secret]が表示されています。この2つの文字列も、後で使います。

f:id:MasatoshiTada:20151018143521p:plain

以上で、準備は完了です。

Twitter4JでJavaプログラムを作る

さて、後は簡単です。IDEEclipseでもNetBeansでもIntelliJ IDEAでも何でも構いません。ビルドツールは、MavenまたはGradleを使います。

まず、Twitter4Jを依存性に含めます。

Gradleならこうです。

compile 'org.twitter4j:twitter4j-core:4.0.4'

Maven

<dependency>
    <groupId>org.twitter4j</groupId>
    <artifactId>twitter4j-core</artifactId>
    <version>4.0.4</version>
</dependency>

次に、src/main/resourcesに「twitter4j.properties」というプロパティファイルを作ります。そして、下記のように記述します。

debug=true
#右辺にConsumer Key (API Key)をコピーして貼り付ける
oauth.consumerKey=XXXXXXXXXXXXXXXX
#右辺にConsumer Secret (API Secret))をコピーして貼り付ける
oauth.consumerSecret=XXXXXXXXXXXXXXXXXX
#右辺にAccess Tokenをコピーして貼り付ける
oauth.accessToken=XXXXXXXXXXXXXXXX
#右辺にAccess Token Secretをコピーして貼り付ける
oauth.accessTokenSecret=XXXXXXXXXXXXXXXX

src/main/javaにクラスを作ります。菊田さんのブログのプログラムそのままです(^^;

import twitter4j.*;

public class UserInfoMain {
    public static void main(String[] args) throws TwitterException {
        Twitter twitter = TwitterFactory.getSingleton();
        User user = twitter.verifyCredentials();
        System.out.println(user.getName());
        System.out.println(user.getScreenName());
        System.out.println(user.getFriendsCount());
        System.out.println(user.getFollowersCount());

        Status status = twitter.updateStatus("Twitter4Jから初めてのツイート! #twitter4j");
    }
}

これだけです。いざ、実行します。すると・・・

多田真敏
suke_masa
63
199
. . . (他にもデバッグログがいっぱい表示されます)

f:id:MasatoshiTada:20151018142359p:plain

おおお、自分のユーザー情報が表示されて、つぶやきが投稿されてる!

まとめ

  • Developer登録をして、アクセストークンなどの情報を取得する
  • アクセストークンなどは、コピーしてtwitter4j.propertiesに貼り付ける
  • Twitter4J使えば、REST APIやらJSONやら認証やらのコードは書かなくてOK!

感想

あまりに簡単すぎて感動すら覚えました・・・。

Twitter4Jのソースも、これから読んでみたいと思います!