JavaでTwitterを弄る【呟くだけ】

年の瀬だしなんかしたいって事で。

JavaTwitterを弄れないかなって思ったので、
今回は【Javaでツイートを行う】ことを目的としてやってみました。

以下、今回の環境。

Twitterアカウントを作成

普段使ってるTwitterのアカウントを使うのも抵抗があるので新しく作成。
今回は「hakumai_develop」というIDで登録

f:id:hakumai164:20141228210121p:plain

Twitter4Jをダウンロード

Java向けのTwitterライブラリ「Twitter4J」を使用します。

f:id:hakumai164:20141228211004p:plain

Twitter4J - A Java library for the Twitter API(http://twitter4j.org/)

最新安定版をダウンロードして適当な場所に置いておきます。

 

Twitter APIを使えるようにする

TwitterAPIを使用できるようにします。

 

【アプリケーションの登録】

下のページからアプリケーションの登録をします。
Twitter Application Management(https://dev.twitter.com/apps)

「Create New App」から情報を入力します。

f:id:hakumai164:20141228215318p:plain

  • 「Name」:
    アプリケーションの名前
  • 「Description」:
    アプリケーションの説明
  • 「Website」:
    アプリケーションに関連付けされるWebサイト(無かったら自分のTwitterのURL等でも良い?)
  • 「Callback URL」:
    アカウント認証を行った際のリダイレクト先URL(今回は必要無し)

入力後、利用規約に同意すると登録完了です。

登録後、「Keys and Access Tokens」からアプリケーションの「Consumer Key」と「Cousumer Secret」の値を確認しておいてください。

f:id:hakumai164:20141228232054p:plain

 

【アクセストークンの生成】

Twitterのアカウントに対して何らかの操作をする場合にはそのアカウントの「アカウントトークン」が必要です。

他者のアカウントに対して操作をする場合は認証を行ってアカウントトークンを取得しますが、アプリケーションの登録を行ったアカウントのアクセストークンならばすぐに確認することが可能です。

「keys and Access Tokens」の下のほうの「Your Access Token」から「Create my access token」を選択しアクセストークンを取得します。

取得後、こちらも「Access Token」と「Access Token Secret」の値を確認しておいてください。

f:id:hakumai164:20141228233559p:plain

 

Eclipseでプロジェクト作成、ビルドパス追加

ダウンロードしたTwitter4Jのライブラリを使用できるようにします。

Eclipseで新規にJavaプロジェクトを作成、作成後にメニューバーの「プロジェクト」から「プロパティー」を選択、「Javaのビルド・パス」から「外部Jar追加...」を選択し、先ほどダウンロードしたフォルダ内の./lib/twitter4j-core-〇〇.jarを追加します。

f:id:hakumai164:20141228213557p:plain

 

アプリケーションとアクセストークンの設定

アプリケーションとアクセストークンの情報を記録しておきます。

Eclipse上でプロジェクトのsrcフォルダ下に「twitter4j.properties」を作成し、以下のように記述します。

debug=true
oauth.consumerKey=(アプリケーションのConsumer Key)
oauth.consumerSecret=(アプリケーションのConsumer Secret)
oauth.accessToken=(アカウントのAccess Token)
oauth.accessTokenSecret=(アカウントのAccess Token Secret)

コードを書く

実際に中身のコードを書きます。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;

public class Test {

	public static void main(String[] args) {

		System.out.println("What's happening?");

		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			String tweetString = br.readLine();

			Twitter twitter = new TwitterFactory().getInstance();
			twitter.updateStatus(tweetString);

		} catch (IOException e) {
		} catch (TwitterException e) {
		}
	}
}

コードのおおまかな解説。

  • 一行の入力をツイートの中身として tweetString に代入
  • TwitterFactoryクラスのgetInstanceメソッドTwitterクラスのオブジェクトを生成して変数twitterに代入
  • TwitterクラスのupdateStatusメソッドに引数としてtweetStringを渡すことでその中身がツイートされる

呟いてみる

Eclipse上で実行。「てすと」と入力して確定

f:id:hakumai164:20141229021946p:plain

twitter4j.properties内でdebug=trueとしているので、デバック情報が色々と流れた後に問題が無ければツイートが行われます。

確認。

f:id:hakumai164:20141229022400p:plain

できてます。

まとめ

twitter4jを使えばJavaで呟けるという話でした。
今回は本当にツイートするだけで終わったのでそのうち他にもなんかしたい

おわり。