phirehose

PHP interface to Twitter Streaming API

705
189
PHP

Phirehose

A PHP interface to the Twitter Streaming API (firehose, etc). This library makes it easy to connect to and consume the Twitter stream via the Streaming API.

See:

Goals

  • Provide a simple interface to the Twitter Streaming API for PHP applications
  • Comply to Streaming API recommendations for error handling, reconnection, etc
  • Encourage well-behaved streaming API clients
  • Operate independently of PHP extensions (ie: shared memory, PCNTL, etc)

This library does:

  • Handles connection/authentication to the twitter streaming API
  • Consumes the stream handing off each status to be enqueued by a method of your choice
  • Handles graceful reconnection/back-off on connection and API errors
  • Monitors/reports performance metrics and errors

This library does NOT:

  • Decode/process tweets
  • Provide any sort of queueing mechanism for asynchronous processing (though some examples are included)
  • Provide any sort of inter-process communication
  • Provide any non-streaming API functionality (ie: user profile info, search, etc)

How To Use

See the example subdirectory for example usage. In each example file you will need to insert your own oauth token/secret, and the key/secret for the Twitter app you have created.

  • filter-oauth.php shows how to follow certain keywords.
  • sample.php shows how to get a small random sample of all public statuses.
  • userstream-alternative.php shows how to get user streams. (All activity for one user.)
  • sitestream.php shows to how to get site streams. (All activity for multiple users.)

Please see the wiki for documentation.

Known Issues

  • After upgrading to PHP 5.6.8, Phirehose causes CPU spikes. To fix, upgrade to PHP 5.6.9 (#83).

Support

If you have any additional questions, head over to the Phirehose Users group [http://groups.google.com/group/phirehose-users]. It’s recommended that you join (or at least regularly check) this group if you’re actively using Phirehose so I can let you know when I release new versions.

Additionally, if you’d like to contact me directly, I’m @fennb on twitter.