技術記事については、Qiitaにも稀に投稿しています。

Twitter4Jを使って、Javaでつぶやきを投稿するプログラムをNetBeans上で書いてみた

coffeeAndBeans

「プログラムを書いた」と呼べるほどのことはしていないけど、Twitter4JというJavaラッパの使い方を備忘ログがてらまとめておきます。

使い方と言ってもほとんど申請やら何やらって感じなので手順まとめって感じです。

まずは、本手順を進める上で必須となっている前提を並べておきます。このあたりは省略するので必要に応じてググるということで。

  • JDKとかそういうJava開発に必要なあれこれがあること
  • つぶやくためのTwitterアカウントがあること

それでは手順通り、画面キャプチャを用いて書いていきます。

Twitterアカウントでアプリケーション登録をする

アプリケーションの登録はTwitter Developersというサイトで行います。以下は既にTwitterアカウントでログイン済みです。

twitterDevelop

少々見つけづらいのですが、フッターのところにある「TOOLS > Manage Your Apps」を押下します。

twitterDevelop2

すると、Twitter Appsという見出しのページに遷移します。今回は登録済みのアプリケーションはないので、「Create New App」を押下し、アプリケーションの登録フォームに行きます。

twitterDevelop4

Name

自分の名前、ではなく、アプリケーション名を入力します。今回のようにTwitterを用いて作るアプリのことですね。

Description

そのアプリがどういったものなのかの説明を入力します。なお、10文字以上じゃないとだめみたいで、10文字に満たないと以下のエラーが発生します。

twitterDevelop6_Error

Website

そのアプリを公開しているWebサイトとか、ですかね。認証後の戻り先となるURLとしても使えるのかな?とりあえず今回はこのブログを入力しました。

また、アプリケーションの登録時、入力不備がなくてもTwitterアカウントにモバイル電話番号がない場合、登録するよう求められます。must add your mobile phoneですって。

twitterDevelop5_Error

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などは後ほど使うので一旦置いておきます。

twitterDevelop8

twitterDevelop9

NetBeansをダウンロードし、インストールする

「NetBeans」でググればすぐでてきますが、NetBeansダウンロードサイトから統合開発環境であるNetBeansをダウンロードします。

今回は特に難しいことをする予定はないので、JavaSEで問題はありません。

dlNetbeans

installNetbeans

Mavenプロジェクトを作成し、Twitter4Jの準備をする

新規のMavenプロジェクトを作る

「ファイル > 新規プロジェクト」を開き、「カテゴリ:Maven」「プロジェクト:Javaアプリケーション」を選択します。次ページのプロジェクト名は適当(今回はautoTweetとしました)で構いません。

netBeans1

pom.xmlにTwitter4Jの依存を記述する

pom.xmlのの中に以下を追記します。

<dependencies>
   <dependency>
        <groupId>org.twitter4j</groupId>
        <artifactId>twitter4j-core</artifactId>
        <version>[4.0,)</version>
    </dependency>
</dependencies>

ちなみに、僕のpom.xmlの全体は以下の通り(画像)。

maven

Twitter4Jの.propertiesファイルを作る

Twitterの認証を行うための情報として、先ほどTwitter Developerで取得したAccess Tokenなどの情報をプロパティファイルに記述します。

プロジェクトを右クリックし、「新規 > その他」で、「カテゴリ:その他」「ファイル・タイプ:プロパティ・ファイル」と進みます。

netBeans2

netBeans3

ここでは、.propertiesという拡張子が自動で付与されるので、名前は単にtwitter4jとしておきます。

netBeans4

内容は以下の通り。(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の部分で「存在しないパッケージ」というエラーが出るかもしれません。その場合は、プロジェクトを右クリックして、「依存性でビルド」を実行してみます。

maven2

ビルド結果は以下のようになればOKです。

------------------------------------------------------------------------
BUILD SUCCESS
------------------------------------------------------------------------
Total time: 4.120s
Finished at: Thu Sep 03 22:20:59 GMT+09:00 2015
Final Memory: 8M/245M
------------------------------------------------------------------------

実行して結果を確認する

いよいよ、プログラムを実行します。NetBeans上の実行ボタン(またはプロジェクトを右クリックして「実行」)を押下します。

execute

今回、System.outなどは記述していないので、結果はTwitter上で確認します。

execute2

無事につぶやきが成功していました。

ちなみに、ktkiyoshiの部分は「user.getScreenName()」というメソッドでちゃんと取得できていることも確認。めでたしめでたし。