Twitter Search API の利用

もっとも基本的なプログラムを書いた.

package twitter.search;

/*
** Twitter Search API の search メソッドを利用して
** ツィートを収集するプログラム
** (メモ) Twitter Search API では認証が不要.
*/ 
import java.net.*;
import java.io.*;
import org.json.*;
 
public class Search {
  public static void main(String[] args) {
    try {
      // HTTPリクエスト
      URL url = new URL("http://search.twitter.com/search.json?q=evernote");
      HttpURLConnection connection = (HttpURLConnection) url.openConnection();
	    
      // レスポンスコード
      System.err.printf("%d %s\n", connection.getResponseCode(), connection.getResponseMessage());
	    
      // 成功ならレスポンスボディを表示する
      if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) {
        BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
        String line = br.readLine();
        System.out.println(line);

        try {
          JSONObject json = new JSONObject(line);
          JSONArray tweets = json.getJSONArray("results"); //つぶやきの配列

          Integer max_id = json.getInt("max_id");
          Integer since_id = json.getInt("since_id");
          String next_page = json.getString("next_page");
          Integer result_per_page = json.getInt("results_per_page");
          String query = json.getString("query");

          System.out.println("ResultPerPage : " + result_per_page);
          System.out.println("query : " + query);
          System.out.println("next_page : " + next_page);
          for(int i = 0; i < tweets.length(); i++){
            JSONObject tweet = (JSONObject)tweets.get(i);
            String date = tweet.getString("created_at");
            String user = tweet.getString("from_user");
            String text = tweet.getString("text");
            String lang = tweet.getString("iso_language_code");

            System.out.println(date);
            System.out.println(lang + "\t" + text);
          }
        } catch (JSONException e) {
          System.err.println(e);
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}