Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

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

2015/10/19 追記
登録画面が少し変わっているようです。@suke_masaさんがまとめています。masatoshitada.hatenadiary.jp

2014/1/18追記
Twitter APIに仕様変更があり、Twitter4Jの利用に関して以下補足を加えました。
Twitter4Jを使ったら10分でつぶやきJavaプログラムが作れました! ~SSL対応の補足編~

タイトルの10分のうち半分近くがOAuth認証の準備だったので、5分にするか10分にするか悩んだのですが、10分にしました(^^;すみません。自分がもっとテキパキできる人間なら3分くらい…。

ネット情報や勉強会で「Twitter4Jは素晴らしい!」と方々で聞くもので、前々から触ってみたいと思っていました。で、繁忙期を抜けて今がチャンス!なので触ってみました。

今日のブログの前提条件
・Twitterアカウントがあること
・インターネットにつながるPC
・上記PCにNetBeans 7.3インストール済
くらいかと

目的

Twitterのサイトや世にあるサイト・アプリを使うのではなく
自分で書いたJavaプログラムでツイートをする( ̄^ ̄)エヘン

今日書いたサンプルはほとんどがTwitter4Jの恩恵によるものなので「自分で書いたJavaプログラム」という表現は超怪しいですが…(^^;

参考にしたサイト

本家Twitter4Jサイト
http://twitter4j.org/ja/index.html

@IT JavaでTwitterをOAuth認証して使えるTwitter4Jとは
http://www.atmarkit.co.jp/ait/articles/1102/08/news122.html

の2つです(^^;半分後者の記事の焼き直しに近いです。

アプリケーションの登録をする

Twitter Developers
https://dev.twitter.com/

上記サイトにアクセスします。
@ITの記事では日本語になってましたが、英語しか見当たらなかったのでそのキャプチャベースです(^^;

1.Twitter Developersへアクセス
f:id:kikutaro777:20130719175832j:plain

2.右上の「Sign in」を押してプログラムで使うTwitterアカウントでログインします
f:id:kikutaro777:20130719175854j:plain

3.ログイン後、右上のメニューから「My applications」を選択します
f:id:kikutaro777:20130719175952j:plain

4.自分の場合は今までに何も作ってないので空です
「Create a new application」を押下します。
f:id:kikutaro777:20130719180033j:plain

5.アプリケーションに関する情報を入力します
遊びのサンプルなので適当に…。
f:id:kikutaro777:20130719180207j:plain

6.作成完了すると以下のような画面に
f:id:kikutaro777:20130719180333j:plain

7.アクセスレベルを変更します
デフォルトだとRead-onlyなので、Settingsタブからアクセスレベルを変更します。
Read and Writeにして「Update this Twitter application's settings」ボタンで保存します。
f:id:kikutaro777:20130719180436j:plain

8.アクセストークンの発行をしますDetailsタブに戻って「Your access token」の所で以下ボタンを押します。
f:id:kikutaro777:20130719180628j:plain

OAuth toolタブで以下4つが発行されて確認できれば完了です(^^)

  • Consumer key
  • Consumer secret
  • Access token
  • Access token secret

NetBeans 7.3 + Mavenでプロジェクト作成

Mavenでプロジェクト作成します。
「ファイル」メニューの「新規プロジェクト」を選びます。
以下のように「Maven」->「Javaアプリケーション」を選択します。
f:id:kikutaro777:20130719181158j:plain

プロジェクト情報は適当に入れます。
f:id:kikutaro777:20130719181259j:plain

twitter4jのプロパティファイル追加

作成されたプロジェクトを右クリックして「新規」->「その他」を選び
f:id:kikutaro777:20130719181328j:plain

「その他」->「プロパティ・ファイル」を選びます。
f:id:kikutaro777:20130719181400j:plain

「twitter4j」と入力します(拡張子はNetBeansがつけてくれます)
f:id:kikutaro777:20130719181432j:plain

NetBeansのプロジェクトタブだとみえないですが、ファイルタブにすれば
twitter4j.propertiesが確認できるので開きます
f:id:kikutaro777:20130719181533j:plain

ファイルの中身は
http://twitter4j.org/ja/configuration.html
のページにあるように記述します。

debug=true
oauth.consumerKey=*********************
oauth.consumerSecret=******************************************
oauth.accessToken=**************************************************
oauth.accessTokenSecret=******************************************

これでお膳立ては完了ですね。長いようですが、サクサクできれば5分です(^^)

依存性追加

Mavenのセントラルリポジトリ参照で問題なければ、pom.xmlに以下の依存性のみ追加します。

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

2014/1/18追記
2014/1/18現在では3.0.3ではなく3.0.5を利用してください。以下補足。
Twitter4Jを使ったら10分でつぶやきJavaプログラムが作れました! ~SSL対応の補足編~

コードを書いてみる

自動生成されてるクラスのmainメソッドに以下のような感じで追加。

package jp.co.hoge.myfirstsampleoftwitter4j;

import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.User;

public class App 
{
    public static void main( String[] args ) throws TwitterException
    {
        Twitter twitter = new TwitterFactory().getInstance();
        User user = twitter.verifyCredentials();
        
        //ユーザ情報取得
        System.out.println("なまえ   :" + user.getName());
        System.out.println("ひょうじ名 :" + user.getScreenName());
        System.err.println("ふぉろー数 :" + user.getFriendsCount());
        System.out.println("ふぉろわー数:" + user.getFollowersCount());
      
        //ついーとしてみる
        Status status = twitter.updateStatus("初めてTwitter4J使ってみました(^^)/");
    }
}

実行結果

結果は標準出力には

なまえ   :キクタロー
ひょうじ名 :kikutaro_
ふぉろー数 :241
ふぉろわー数:137

と出ました。おお、簡単に色々な値が取れる。

ツイートした結果は…


ちゃんとできてる!

コードのほぼ全てがTwitter4Jの恩恵によるものなのに、なんか嬉しい!

独り言

プログラム開発経験のない新人さんのレクチャー用として良いサンプルになるかなぁ、という想いもあって作ってみたのですが…そういえば前に聞いたらTwitterとかやってないって言ってた…(^^;こういう題材使うと楽しみながらプログラム書けそうなんだけどなぁ。

Twitter4JはAPIの設計や内部のアーキテクチャなどが非常に良くできてるという話なので、ソースも拝見して勉強していきたいなーと思います。

Javaって賛否両論、とくに否が多いけど、こういう便利なライブラリが簡単に触れるのは個人的にはありがたいですね(^^)

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村