カテゴリー
未分類

TwitterのStreaming APIを利用する(Java)

この内容は自分のようなStreaming API?^q^やSSL?’q`な方に向けて書いていきます。

まず大まかな流れ。

1.SSLソケットを作る

2.BASIC認証用のキーを作成する

3.キーを使いリクエストヘッダを作成し送信する

4.データをもらう

これだけ。

 

Javaで書くとソースコードはこんな感じ。

import java.io.*;
import java.net.*;
import javax.net.ssl.*;
import sun.misc.BASE64Encoder;

class test{
    public static void main(String[] args) throws Exception {
        //SSLSocketを作成
        Socket s = HttpsURLConnection.getDefaultSSLSocketFactory().createSocket(“stream.twitter.com”,443);

        //入出力用
        BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
        PrintWriter out = new PrintWriter(s.getOutputStream());

        //filterの場合、track=検索キーワードでキーワード検索の結果をリアルタイムで取得できる。
        out.println(“GET /1/statuses/filter.json?track=axe1lyze HTTP/1.1”);

        //認証キーの作成 ユーザーID:パスワード をBASE64で暗号化
        String key = new String((new BASE64Encoder()).encodeBuffer(“UserID:Password”.getBytes()));
        out.println(“Authorization:Basic “+key);

        //フラッシュしてデータを送信
        out.flush();

        //これでデータを取得し続ける
        String line;
        while((line=in.readLine())!=null){System.out.println(line);}
    }
}

 

取得形式はJSONだけなのかな?XMLもいけるとありがたいんだけども。

BASIC認証が使えるみたい。これはStreaming APIだけかな?

ツイートの投稿もこんな流れでできると幸せになれるんだけどなぁ。

自分が知らないだけでしたら申し訳ありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です