Twitter4J + OAuth認証でツイートする方法

Twitter4J + OAuth認証でツイートする方法を簡単にまとめます。「OAuth認証でツイートしてみる」ということだけが目的なので、それぞれについての詳しい説明は省いてあります。それらが必要な場合は他の方が多分まとめていると思うのでそちらを参照してください。

所要時間は10〜15分ぐらい?

とりあえず知っておいた方がいいこと(読み飛ばしても大丈夫です)

従来の認証方法はベーシック認証と呼ばれるものでした。アカウント名パスワードを用いる認証方法です。しかし、これらは8月に廃止されてそれ以降はOAuth認証が推奨の認証方法となります(xAuth認証などもありますがここでは割愛)。
OAuth認証はベーシック認証とは異なり、コンシューマキーコンシューマシークレットアクセストークアクセストークンシークレットの4つが必要となります。これらをGETすることがOAuth認証最大の山場。以前は敷居が若干高いものでしたが、今はWebブラウザだけで完結してしまうのでとても簡単です。

OAuth認証に必要なものをGETする

  1. Resister an app をクリック
    • Twitterにログインしていない場合は、ログインを求められる
    • クリック後、「アプリケーション登録申請」というページが表示されればOK
  2. 必要事項を記入し、登録
    • アプリケーション名 - ツイート単体をWebで表示したときの「○○から」の「○○」に相当。
    • アプリケーションの説明 - そのアプリケーション(BOT)の説明。
    • アプリケーションのウェブサイトURL - 「○○から」をクリックした際に表示されるウェブサイト
    • 所属会社/団体 - 作者名に相当。空欄でもOKです。
    • アプリケーションの種類 - クライアントアプリケーション
    • Default Access type - Read & Write
    • アイコン - お任せします
  3. コンシューマキーとコンシューマシークレットをGET
    1. 上部にあるYour appsというリンクをクリック
    2. 登録したアプリケーションの一覧を表示し今回登録したアプリケーション名(もしくはアイコン)をクリック
    3. ページの中盤に「Consumer key」と「Consumer secret」があるので控えておく
  4. アクセストークンとアクセストークンシークレットをGET
    1. コンシューマキーなどが記載してあるページの右側にある「My Access Token」をクリック
    2. Access Token」と「Access Token Secret」があるので控えておく

OAuth認証でツイートする

以下にサンプルコードをおいておきます。ご自身で登録したアプリケーションのコンシューマキー、コンシューマシークレット、アクセストークン、アクセストークンシークレットに置き換えてから実行して下さい。

public void tweet() throws TwitterException {
	String consumerKey = "consumerKey";
	String consumerSecret = "consumerSecret";
	String accessToken = "accessToken";
	String accessTokenSecret = "accessTokenSecret";
	
	TwitterFactory factory = new TwitterFactory();
	Twitter twitter = factory.getInstance();
	twitter.setOAuthConsumer(consumerKey,consumerSecret);
	twitter.setOAuthAccessToken(new AccessToken(accessToken, accessTokenSecret));
	
	twitter.updateStatus("Hello world!");
}

Hello world!」もしくはご自身で変更した文字列がツイートされればOAuth認証でのツイートは成功です。