1. TOPTOP
  2. Webサービス
  3. Twitter

TwitterのストリーミングAPIでタイムラインを取得するためにはGitHubにあるPhirehoseを使えばいいらしい

|

Twitter_logo_blue

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”); を加えておく

実行すると、任意のキーワードに関するストリーミングラインが出てくるらしいですが、残念ながら、私の場合は出てきませんでした。

phirehose1

コードを実行すると、“loading”の文字列が出ずっぱりとなります。Twitterのサーバーへのアクセスは出来ているようですが、つぶやきが出てきません。

もちろんキーワードは、”山手線”とか”中央線”など、常時誰かがつぶやいてそうなキーワードを使っています。

自分の使っているサーバーによって、Twitterのサーバーへのアクセス可否が変わるのかと思い、「さくらのレンタルサーバー」から「さくらのクラウド」に変えてみましたが、やはり”loading”が出っ放しです。なぜだ?

〔参考サイト〕