PHP library for Twitter Streaming API.
Twitteer Streaming API documentation: https://dev.twitter.com/streaming/overview
The esiest way to install Callisto is using composer
$ composer require ktamashun/callisto
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.
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
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;
}
This library follows SemVer v2.0.0.
The library is tested using PHPUnit. You can run the test like:
$ ./vendor/phpunit/phpunit ./tests
The MIT License (MIT). Please see the License File for more information.