Skip to content

ktamashun/Callisto

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Callisto

Latest Version on Packagist Software License Coverage Status Quality Score Build Status Total Downloads

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

Tamás Kovács

Licence

The MIT License (MIT). Please see the License File for more information.