Twitter APIをJavaから使ってみる
先日の日記でやっていた、JavaからTwitter APIを使う方法のソースを書いておきます。
本気でやるのはAdobe AIRを使いたいので、その前にけじめとして。
以下、タイムラインを取得する部分のコード。
try { URL url = new URL("http://twitter.com/statuses/friends_timeline.xml"); //ここにユーザーネームとパスワードを入力。 String username = "yourUserName"; String password = "yourPassword"; HttpAuthenticator http_authenticator = new HttpAuthenticator(username, password); Authenticator.setDefault(http_authenticator); HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); urlConn.setRequestMethod("GET"); urlConn.setInstanceFollowRedirects(false); urlConn.setRequestProperty("Accept-Language", "ja;q=0.7,en;q=0.3"); urlConn.connect(); Map headers = urlConn.getHeaderFields(); Iterator it = headers.keySet().iterator(); System.out.println("レスポンスヘッダ:"); while (it.hasNext()) { String key = (String) it.next(); System.out.print(" " + key + ": " + headers.get(key) + "\n"); } System.out.println("レスポンスコード[" + urlConn.getResponseCode() + "] " + "レスポンスメッセージ[" + urlConn.getResponseMessage() + "]" ); System.out.println("\n---- ボディ ----"); BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); while (true) { String line = reader.readLine(); if (line == null) { break; } System.out.printlnt(line + "\n"); } reader.close(); urlConn.disconnect(); System.out.println("タイムライン取得完了"); } catch (MalformedURLException ex) { Logger.getLogger(TwitterClientView.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(TwitterClientView.class.getName()).log(Level.SEVERE, null, ex); }
import java.net.Authenticator; import java.net.PasswordAuthentication; /** * 以下、HttpAuthenticator クラス。Basic認証に使う。 * * @author shiraminekeisuke */ public class HttpAuthenticator extends Authenticator { private String username; private String password; public HttpAuthenticator(String username, String password) { this.username = username; this.password = password; } @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password.toCharArray()); } public String myGetRequestingPrompt() { return super.getRequestingPrompt(); } }
コンパイルしてないんで動かないかもしれません。ご了承ください。
以上のソースコードは自由にコピーおよび改変することが出来ますが、その利用に伴って利用者が追った損害等につきましてはMineAP(Shiramine Keisuke)は何ら保証しないものとします。
参考URL
http://x68000.q-e-d.net/~68user/net/java-http-url-connection-1.html
Twitter4Jを使うのも良さそうです。
http://yusuke.homeip.net/twitter4j/ja/index.html