「プログラムを書いた」と呼べるほどのことはしていないけど、Twitter4JというJavaラッパの使い方を備忘ログがてらまとめておきます。
使い方と言ってもほとんど申請やら何やらって感じなので手順まとめって感じです。
まずは、本手順を進める上で必須となっている前提を並べておきます。このあたりは省略するので必要に応じてググるということで。
- JDKとかそういうJava開発に必要なあれこれがあること
- つぶやくためのTwitterアカウントがあること
それでは手順通り、画面キャプチャを用いて書いていきます。
Twitterアカウントでアプリケーション登録をする
アプリケーションの登録はTwitter Developersというサイトで行います。以下は既にTwitterアカウントでログイン済みです。
少々見つけづらいのですが、フッターのところにある「TOOLS > Manage Your Apps」を押下します。
すると、Twitter Appsという見出しのページに遷移します。今回は登録済みのアプリケーションはないので、「Create New App」を押下し、アプリケーションの登録フォームに行きます。
Name
自分の名前、ではなく、アプリケーション名を入力します。今回のようにTwitterを用いて作るアプリのことですね。
Description
そのアプリがどういったものなのかの説明を入力します。なお、10文字以上じゃないとだめみたいで、10文字に満たないと以下のエラーが発生します。
Website
そのアプリを公開しているWebサイトとか、ですかね。認証後の戻り先となるURLとしても使えるのかな?とりあえず今回はこのブログを入力しました。
また、アプリケーションの登録時、入力不備がなくてもTwitterアカウントにモバイル電話番号がない場合、登録するよう求められます。must add your mobile phoneですって。
Twitterのアクセストークン等を取得する
Keys And Access Tokensタブから以下の4つを確認します。
- Consumer key
- Consumer secret
- Access token
- Access token secret
Access TokenとAccess Token Secretは自分で発行する必要があるので、「Create my access token」を押下します。発行されたTokenなどは後ほど使うので一旦置いておきます。
NetBeansをダウンロードし、インストールする
「NetBeans」でググればすぐでてきますが、NetBeansダウンロードサイトから統合開発環境であるNetBeansをダウンロードします。
今回は特に難しいことをする予定はないので、JavaSEで問題はありません。
Mavenプロジェクトを作成し、Twitter4Jの準備をする
新規のMavenプロジェクトを作る
「ファイル > 新規プロジェクト」を開き、「カテゴリ:Maven」「プロジェクト:Javaアプリケーション」を選択します。次ページのプロジェクト名は適当(今回はautoTweetとしました)で構いません。
pom.xmlにTwitter4Jの依存を記述する
pom.xmlの
<dependencies>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>[4.0,)</version>
</dependency>
</dependencies>
ちなみに、僕のpom.xmlの全体は以下の通り(画像)。
Twitter4Jの.propertiesファイルを作る
Twitterの認証を行うための情報として、先ほどTwitter Developerで取得したAccess Tokenなどの情報をプロパティファイルに記述します。
プロジェクトを右クリックし、「新規 > その他」で、「カテゴリ:その他」「ファイル・タイプ:プロパティ・ファイル」と進みます。
ここでは、.propertiesという拡張子が自動で付与されるので、名前は単にtwitter4jとしておきます。
内容は以下の通り。(xxxxxの部分を正しい情報で置き換えてください)
debug=true
oauth.consumerKey=xxxxxxxxxxxxxxxxxxxxxx
oauth.consumerSecret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
oauth.accessToken=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
oauth.accessTokenSecret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
つぶやくだけのプログラムを書く
ここでようやくJavaのソースを書きます。今回はautoTweet.javaという適当なJavaファイルを用意し、以下を書きました。
package com.ktkiyoshi.autotweet;
import twitter4j.Status;
import twitter4j.Twitter;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.User;
public class autoTweet {
public static void main( String[] args ) throws TwitterException
{
Twitter twitter = new TwitterFactory().getSingleton();
User user = twitter.verifyCredentials();
Status status = twitter.updateStatus("This is test by " + user.getScreenName() + " via twitter4j");
}
}
これを書いた時点では、もしかしたらimportの部分で「存在しないパッケージ」というエラーが出るかもしれません。その場合は、プロジェクトを右クリックして、「依存性でビルド」を実行してみます。
ビルド結果は以下のようになればOKです。
------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 4.120s
Finished at: Thu Sep 03 22:20:59 GMT+09:00 2015
Final Memory: 8M/245M
------------------------------------------------------------------------
実行して結果を確認する
いよいよ、プログラムを実行します。NetBeans上の実行ボタン(またはプロジェクトを右クリックして「実行」)を押下します。
今回、System.outなどは記述していないので、結果はTwitter上で確認します。
無事につぶやきが成功していました。
ちなみに、ktkiyoshiの部分は「user.getScreenName()」というメソッドでちゃんと取得できていることも確認。めでたしめでたし。