倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

むしろ Twitter4J で twitter を勉強してみる (2) : OAuth 認証の設定

今回は Twitter4J から twitter 操作をできるようにするための OAuth 認証の設定を見ていきますぅ(記事一覧)。 最初にやるにはハードル高い気もするけど、認証は大事だから仕方ないですぅ。 やることは

  1. twitter での OAuth 利用のための登録申請
  2. OAuth 認証のプロパティの設定

ですぅ。

参考 URL

twitter での OAuth 利用のための登録申請


まずは twitter でのOAuth利用のための登録申請を行います。 参考 URL 「TwitterのOAuth認証を使う」の記事では画面が日本語ですが、今現在は英語のページになっているので、内容はかぶりますがここでも登録申請の説明していきます。 そのうちまた日本語になるかも知れませんが、そのときは上記のページ参照。

登録申請の手順は以下のようになります:

  1. アプリケーションを作成する
  2. アプリケーションに追加の設定をする
  3. アクセス・トークンを生成する

1. アプリケーションを作成する

まず以下のサイト

にアクセス*1して、ログインしましょう。 すると、「My application」ページが表示されます。 あとは下記の通りに進めて下さい:




* は入力必須*2

画面を下にスクロールして




アプリケーションが作成されます。

2. アプリケーションに追加の設定をする

つぶやきを投稿するような、書き込み可能なアプリケーションを作成したい場合は以下のような設定しておきましょう:

3. アクセス・トークンを生成する

正直、OAuth 認証ってよく分かってないんですが、アクセス・トークンというのが必要なようなのでこれを生成しましょう。 「Details」タブに戻って


アクセス・トークンが問題なく作成されると
「Your Access Token」の項が追加される



生成された4つの文字列

  • Customer key
  • Customer secret
  • Access token
  • Access token secret

を後で使います。 登録申請はこれで完了です。

OAuth 認証のプロパティの設定


次は、登録申請で取得した OAuth 認証の設定を自分のプログラムに反映させます。 方法は次の3つがあります:

  • twitter4j.properties ファイルでプロパティを設定する
  • twitter4j.conf.ConfigurationBuilder クラスを使って、プログラム中から設定する
  • システムプロパティとして、プログラム実行時に指定する

ここでは1つ目の方法だけを見ていきます。 他のものについては「Twitter4J - 設定」を参照。

twitter4j.properties ファイルでプロパティを設定する

twitter4j.properties ファイルから OAuth 認証の設定を行うには、以下のような内容の twitter4j.properties ファイル

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

を用意します。 * の部分は登録申請で得られた文字列を指定して下さい。 このファイルを自分のプログラムのカレントディレクトリ、またはクラスパスのルート(WEB-INF/classes等)に配置して下さい。 これでプロパティ設定は完了です。

サンプル・リターンズ


これらの設定ができれば、Twitter4J のサンプル・コードを実行することができます。 前回と同様のコード (in Groovy)

@Grab('org.twitter4j:twitter4j-core:[2.2.4,)')

import twitter4j.*

Twitter twitter = new TwitterFactory().getInstance() 
Status status = twitter.updateStatus('Hello, Twitter4J world !')
println "Successfully updated the status to [${status.text}]."

を用意して実行すると、標準出力に

Successfully updated the status to ['Hello, Twitter4J world !.].

と表示されて、ツイートも投稿されます:

Twitter API ポケットリファレンス (POCKET REFERENCE)

Twitter API ポケットリファレンス (POCKET REFERENCE)

*1:もしくは、twitter サイト右下にある「開発者」 → サイト右下「Create an app」ボタンでも OK。

*2:アプリケーション名に「Twitter」などを含めることができないようです。