ktamashun/callisto

Twitter流式API的PHP库

v0.2 2017-02-12 18:38 UTC

This package is not auto-updated.

Last update: 2024-09-28 20:44:03 UTC


README

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

Twitter流式API的PHP库。

Twitteer流式API文档: https://dev.twitter.com/streaming/overview

安装

安装Callisto最简单的方法是使用composer

$ composer require ktamashun/callisto

用法

创建Twitter应用

首先访问https://apps.twitter.com/ 创建一个新的Twitter应用。要验证Twitter流式API,你需要一个CONSUMER_KEYCONSUMER_SECRETACCESS_TOKEN和一个ACCESS_TOKEN_SECRET。这些可以在你应用的“密钥和访问令牌”选项卡中找到。

运行示例

示例可以在examples目录中找到。

该目录包含一个示例配置文件:env.sample.php。使用它来创建一个本地的env.local.php,并用你应用中的CONSUMER_KEYCONSUMER_SECRETACCESS_TOKENACCESS_TOKEN_SECRET常量填充。

运行示例最简单的方法是使用Docker容器。从项目的根目录运行此命令

$ docker run -it --rm -v $(pwd):/www/ -w /www/examples php:7.1-alpine php filter_example.php

使用过滤器流

\Callisto\RequestParameters命名空间中有五种过滤器类型。

  • FilterLevel:这可以用来过滤掉在演示中不合适的推文。
  • Follow:你可以使用此参数跟踪特定用户的活动。
  • Language:过滤使用一种或多种给定语言编写的推文。
  • Location:过滤在特定地理区域编写的推文。请仔细阅读有关位置过滤的Twitter文档。
  • Track:你可以跟踪特定单词。

你可以在Twitter API文档中详细了解过滤器参数。

示例用法

$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;
}

版本控制

此库遵循SemVer v2.0.0。

测试

此库使用PHPUnit进行测试。你可以像这样运行测试

$ ./vendor/phpunit/phpunit ./tests

致谢

Tamás Kovács

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。