Phirehoseを使ってTwitter Streaming APIでツイートを取得してみた!
「Phirehose」というPHPライブラリを使って「Twitter Streaming API」のリアルタイムのツイートを取得してみました。
以下その手順です。
■「Phirehose」をインストール!
以下のGithubの「Phirehose」のページからファイルをダウンロードして、zipを解凍してください。
https://github.com/fennb/phirehose
解凍すると「lib」のディレクトリがあるので、それをお目当てのwebサーバーにまるごと移動します。
■「Phirehose」でツイート取得!
以下のようなPHPコードで「Twitter Streaming API」の「statuses/sample」のリクエストを使って、リアルタイムのツイートを取得します。
このコードはPhirehoseのexampleディレクトリにある「sample.php」のサンプルコードを真似して作ったものです。
<?php require_once('./lib/Phirehose.php'); require_once('./lib/OauthPhirehose.php'); class SampleConsumer extends OauthPhirehose { public function enqueueStatus($status) { $data = json_decode($status, true); if (is_array($data) && isset($data['user']['screen_name'])) { print $data['user']['screen_name'] . ': ' . urldecode($data['text']) . "\n"; } } } define("TWITTER_CONSUMER_KEY", "hogegegegegege"); define("TWITTER_CONSUMER_SECRET", "fugagagagaga"); define("OAUTH_TOKEN", "testestestestes"); define("OAUTH_SECRET", "123456789123456798"); // Start streaming $sc = new SampleConsumer(OAUTH_TOKEN, OAUTH_SECRET, Phirehose::METHOD_SAMPLE); $sc->setLang('ja'); $sc->consume(); ?>
このコードを叩くとプロセスが走り出し、延々とツイートを標準出力で吐き出し続けます。
体感としては、だいたい秒速10~20ツイートくらいの勢いです。
ほとんど負荷がなくて、バックグラウンドで動かしていても全然平気です。
途中で接続が切れてしまった場合も、ちゃんとリトライで再接続をしてくれるお利口さんのようです。
以上!