2010年8月17日火曜日

Twitter4jを使ったxAuth実装のコーディング例

【セルフPR】
・ねこぱβ(http://cat.picparks.com
・いぬぱβ(http://dog.picparks.com
も見てくれると嬉しいです。

---

Twitterクライアントを作るに当たって必要な認証方法として、
前のエントリで書いたように、Twitterサポートとのやり取りや、
セキュリティ面からオススメしない認証方法であるxAuth。

とは言え、ある程度の需要もあると思われるので、
Twitter4jを使った場合のコーディング例を、一応紹介。

■開発環境
・JDK 6
・Android SDK Tools, Revision 6
・Twitter4j-2.1.3

■前提
1.アプリケーション登録が完了している。(※)
※xAuthを使う場合は、「クライアントアプリケーション」として登録する。
2.ログイン画面として、ユーザー名とパスワードを入力するフィールド(※)と、
ログインボタンを設定したレイアウトをあらかじめ作成しておく。
※ここでは、ユーザー名の入力フィールドはEditText01
パスワードの入力フィールドはEditText02というIDにしています。

■コーディング例

以下のコードを、ログイン処理を担うActivityのonCreateメソッドに記述、
もっと詳しく言えば、OnClickListenerクラスのonClickメソッド内に記述します。
    ConfigurationBuilder builder = new ConfigurationBuilder();

   // Twitterにアプリケーション登録したら付与される、
   // Consumer keyとConsumer secretをBuilderにセット。
   builder.setOAuthConsumerKey(consumerKey);
   builder.setOAuthConsumerSecret(consumerSecret);

   TwitterFactory factory = new TwitterFactory(builder.build());

   // 画面で入力されたユーザー名とパスワードを使って、
   // Twitterクラスのインスタンスを取得。
   Twitter twitter = factory.getInstance(
   ((EditText)findViewById(R.id.EditText01)).getText().toString(),
   ((EditText)findViewById(R.id.EditText02)).getText().toString());

この処理により、access_tokenとaccess_token_secretが付与されるので、
これらを使うには、下記のメソッドを使って取得します。
    AccessToken accessToken = twitter.getOAuthAccessToken();

   // access_tokenを取得。
   String token = accessToken.getToken();
   // access_token_secretを取得。
   String tokenSecret = accessToken.getTokenSecret()

これらの値を、Intent#putExtrasを使ってインテントに渡したり、
SharedPreferences#putStringを使って設定ファイルに記録したりして、
後続の任意の処理で使います。

ツイート編に続く・・・
このエントリーをはてなブックマークに追加