Java(with Twitter4J)でOAuth認証とpostだけするコード

コンソール上でpost"のみ"が出来るJavaコードを書いてみた。Twitter4Jを利用しています。

また、こちらのページを参考にさせていただきました。
twitter4jでOAuth認証 - チラシ裏日記上等!!


全米が感動する超低機能ぶり。OAuth認証と単純なpost動作の挙動確認したかっただけなのに、どのサンプルもGUIなんだもの・・・。



※このコードを参考・使用して発生したいかなる損害にも、筆者(Atom)は一切の責任を持ちません。自己責任でご使用ください。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.awt.Desktop;
import java.net.URI;
import java.net.URISyntaxException;

import twitter4j.Twitter;
import twitter4j.Status;
import twitter4j.TwitterException;
import twitter4j.TwitterFactory;
import twitter4j.http.AccessToken;
import twitter4j.http.RequestToken;


public class test1{
    public static void main(String[] args){
        String consumerKey = "hogehoge";
        String consumerSeacret= "hagehage";
        
        TwitterFactory factory = new TwitterFactory();
        
        Twitter twitter = factory.getInstance();
        twitter.setOAuthConsumer(consumerKey, consumerSeacret);

        try {
            RequestToken requestToken = twitter.getOAuthRequestToken();
            AccessToken accessToken = null;
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            
            while(accessToken == null){

                //一応表示もしておく
                System.out.println("Please go to this URL:");
                System.out.println(requestToken.getAuthorizationURL());
                
                //ブラウザにURLを投げつけて開かせる
                try {
                    throwURL(requestToken.getAuthorizationURL());
                } catch (URISyntaxException ex) {
                    ex.printStackTrace();
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
                
                //PINコード打ち込んでもらう
                System.out.print("Prease enter the PIN:");
                String pin = br.readLine();
                try{
                    if(pin.length() > 0){
                        accessToken = twitter.getOAuthAccessToken(requestToken, pin);
                    }else{
                        accessToken = twitter.getOAuthAccessToken();
                    }
                } catch (TwitterException te) {
                    if(401 == te.getStatusCode()){
                        System.out.println("Unable to get the access token.");
                    }else{
                        te.printStackTrace();
                    }
                }
            }
            
            //Tweetさせる部分。すさまじく愚直にはき出す。
            while(true){
                System.out.print("What's are you doing ? :");
                String text = br.readLine();
                if(text.equals("exit")) break;              //"exit"入力で終了

                Status status = twitter.updateStatus(text); //入力された文字を投げる
            }

        } catch (TwitterException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    //アクセストークンを表示するメソッド(使ってない)
    private static void storeAccessToken(AccessToken accessToken){
        System.out.println(accessToken.getToken());
        System.out.println(accessToken.getTokenSecret());
    }

    //ブラウザにURLを投げつけるメソッド
    private static void throwURL(String url) throws URISyntaxException, IOException {
        Desktop desktop = Desktop.getDesktop();
        desktop.browse(new URI(url));
    }
}

(こんなコードに一晩かかったなんて言えない・・・。)
(もうすこしJavaらしいコードをですね・・・。)


なにかおかしい点などあれば、コメントしていただけると嬉しいです!