ktamashun / callisto
PHP library for the Twitter Streaming API
Requires
- php: 7.1.*
- psr/http-message: 1.0.1
- psr/log: 1.0.2
Requires (Dev)
- phpunit/phpunit: 6.*
This package is not auto-updated.
Last update: 2025-05-10 23:38:38 UTC
README
PHP library for Twitter Streaming API.
Twitteer Streaming API documentation: https://dev.twitter.com/streaming/overview
Install
The esiest way to install Callisto is using composer
$ composer require ktamashun/callisto
Usage
Create a Twitter app
First go to https://apps.twitter.com/ and create a new Twitter app. To authenticate to the Twitter Streaming API you will need a CONSUMER_KEY
, CONSUMER_SECRET
, ACCESS_TOKEN
and an ACCESS_TOKEN_SECRET
. These can be found on the Keys and access tokens tab within your application.
Running the examples
The examples can be found in the examples
directory.
The directory contains a sample config file: env.sample.php
. Use this to create a local one called env.local.php
and fill in the CONSUMER_KEY
, CONSUMER_SECRET
, ACCESS_TOKEN
and ACCESS_TOKEN_SECRET
constants with the ones from your application.
The esiest way to run the examples is to use a Docker container. Run this command from the project's root directory:
$ docker run -it --rm -v $(pwd):/www/ -w /www/examples php:7.1-alpine php filter_example.php
Using the filter stream
There are five type of filters in the \Callisto\RequestParameters
namespace.
FilterLevel
: This can be used to filter out tweets that for example would not be appropriate during a presentation.Follow
: You can use this parameter follow the activity of certain users.Language
: Filter tweets that were written in one or more given languages.Location
: Filter tweets that were written in a certain geographic area. Please read carefully Twitter's documentation about location filtering.Track
: You can track specific words.
You can read about fiiter parameters in detail in the Twitter API documentation.
Example usage:
$oauth = new \Callisto\Oauth(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET); $stream = new \Callisto\Stream\Filter($oauth); $stream->setRequestParameters( [ // Track custom phrases new Callisto\RequestParameter\Track(['twitter']), // Filter Tweets by language new Callisto\RequestParameter\Language(['en', 'de']), // Filter tweets from New York or San Francisco new Callisto\RequestParameter\Location( [ [-74, 40, -73, 41], [-122.75, 36.8, -121.75, 37.8], ] ), // Follow specific users new Callisto\RequestParameter\Follow(['123456789', '987654321']), // Set filter level for the stream new Callisto\RequestParameter\FilterLevel(Callisto\RequestParameter\FilterLevel::LOW) ] ); foreach ($stream->readStream() as $jsonStatus) { echo $jsonStatus; }
Versioning
This library follows SemVer v2.0.0.
Testing
The library is tested using PHPUnit. You can run the test like:
$ ./vendor/phpunit/phpunit ./tests
Credits
Licence
The MIT License (MIT). Please see the License File for more information.