unsweets.log

Frontend & Android.

Twitter4JでPIN認証

Published at

Twitter4Jを使ってPIN認証します。

Twitter Application Managementにアクセスし、自分のアプリケーションを予め作成しておきます。この時、コールバックURLをを空にしておくことでPIN認証をすることが出来ます。

Twitter Application Managementの個別URLのアプリ設定画面

適宜インポートしておきます。

Twitter twitter = TwitterFactory.getSingleton();
twitter.setOAuthConsumer(API_KEY, API_SECRET);
try {
    RequestToken requestToken = twitter.getOAuthRequestToken();
    String url = requestToken.getAuthorizationURL();
} catch (TwitterException e) {
}

urlを読み込ませ、PINを控えさせておきます。なおString型だと都合が良いです。

String pin = "***";
try{
    AccessToken token = twitter.getOAuthAccessToken(requestToken, pin);
    String accessToken = token.getToken();
    String accessTokenSecret = token.getTokenSecret();
    User user = twitter.verifyCredentials(); // ユーザー情報を取得できる
} catch (TwitterException e) {
}

getOAuthAccessTokenはrequestToken無しでも取得出来るっぽいですが、明示的に指定したほうが心配はないのかも。エラーが投げられなければtwitterインスタンスは使えるようになるはず。

実際にAndroid上で使うには非同期処理が必要だったりしますが、そこは省略。