TwitterのストリーミングAPIの機能を使って、指定したキーワードにマッチしたタイムラインを取得しようと考えています。
先日、PHPでfopen関数を使ったり、curl関数を使ったりすればいいと書いてしまいましたが、これらの関数を使ってストリーミングを取得するのは、どうも違うみたいです。
ストリーミングAPIはGitHubのPhirehose
stackoverflowでのQ&Aを見ると、「ストリーミングAPIを使いたかったらGitHubにUPしているPhirehoseというライブラリが良い」とのことです。Phirehoseはこちら。
もう少しstackoverflowをぐるぐる回ってみると、別のQ&AでストリーミングAPIを簡単に使えるPhirehoseのコードがのっています。
このコードを、GitHubでダウンロードしたフォルダの内容と照らし合わせたら、ストリーミングAPIが使えそうです。
Phirehoseを日本語で解説してくれサイト
ただ英語は苦手なので、日本語のサイトはないものかと、としつこくGoogleを検索していると、Phirehoseを使っているサイトを発見しました。このありがたい日本語サイトを要約すると、
- コードはPhirehose内でexmpleフォルダにあるfilter-oauth.php。これを使う
- 2つある、/libディレクトリのパスを変更(../lib/ではなく./lib/)
- defineのところにTwitterのOAuth認証キーを入れる(4つ)
- $sc->consume(); の前の行に $sc->setLang(“ja”); を加えておく
実行すると、任意のキーワードに関するストリーミングラインが出てくるらしいですが、残念ながら、私の場合は出てきませんでした。
コードを実行すると、“loading”の文字列が出ずっぱりとなります。Twitterのサーバーへのアクセスは出来ているようですが、つぶやきが出てきません。
もちろんキーワードは、”山手線”とか”中央線”など、常時誰かがつぶやいてそうなキーワードを使っています。
自分の使っているサーバーによって、Twitterのサーバーへのアクセス可否が変わるのかと思い、「さくらのレンタルサーバー」から「さくらのクラウド」に変えてみましたが、やはり”loading”が出っ放しです。なぜだ?
〔参考サイト〕