Index > Twitter API で指定したユーザのつぶやきを取得(Javaを使用)
Wed, December 9, 2009

Twitter API で指定したユーザのつぶやきを取得(Javaを使用)

APIでつぶやき(ツイート,status)取得は、 Twitter Librariesで紹介されているライブラリを使えば楽なのですが、 Androidで使おうと思っているので、なるべく軽量にしたい。 その上、やりたいことは、指定したユーザのつぶやきを取得したいだけのなので、勉強もかねて 自作したコードをメモします。

Python で TwitterAPIを使って Tweet を取得 にあるように プログラム的につぶやきを取得したいだけなら、Java よりLL系の言語で書いた方がよい。

GetMyStatus.java

このコードは、別途JSONライブラリが必要です。 http://www.json.org/java/index.html から入手します。 AndroidにもこのJSONライブラリが採用されているようなので使用しました。

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;

import org.json.JSONArray;
import org.json.JSONObject;

public class GetMyStatus {

    static public void main(String[] a) throws Exception{

        String user_id="tomoakioshima";
        int count=3;


        String url="http://twitter.com/statuses/user_timeline/"+user_id+".json"+"?count="+count;
        //System.out.println( url );


        StringBuffer sb=new StringBuffer();

        try{
            // 
            // 1) statusを取得
            // 
            URL myurl=new URL(url);

            BufferedReader br = new BufferedReader( new InputStreamReader( myurl.openStream() ,"UTF-8") );
            while(true){
                String line = br.readLine();
                if(line==null)
                    break;
                sb.append(line);
            }

            br.close();

            //
            // 2) 取得したstatusを JSONArray オブジェクトに変換
            //
            String r=sb.toString();

            JSONArray array = new JSONArray(r);

            for(int i=0; i<array.length(); i++){
                Object obj=array.get(i);

                if( obj instanceof JSONObject ){

                    Object id = ((JSONObject)obj).get("id");
                    System.out.println(id);

                    Object text = ((JSONObject)obj).get("text");
                    System.out.println(text);
                }
            }
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
    }
}

説明

コードの先頭の方で指定している user_id , count でコントロールします。 user_id は twitter のユーザ名、count には取得するつぶやきの件数を指定します。 (ここでは 3 を指定していますが、最新のつぶやき 3件を取得します。)

公開されているつぶやきを取得するので、パスワード等は必要ありません。

String user_id="tomoakioshima";
int count=3;

指定できるパラメータや意味については Twitter REST API Method: statuses user_timeline を参照のこと。

 Twitter
follow me on Twitter
 Categories