mineur / twitter-stream-api
Twitter流数据收集器
dev-master
2017-07-16 21:56 UTC
Requires
- php: >=7.1
- guzzlehttp/guzzle: ^6.2
- guzzlehttp/oauth-subscriber: ^0.3.0
Requires (Dev)
- fzaninotto/faker: ^1.6
- mmoreram/php-formatter: ^1.3
- mockery/mockery: ^0.9.9
- phpunit/phpunit: ^6.1
- symfony/var-dumper: ^3.2
This package is not auto-updated.
Last update: 2024-09-22 03:27:32 UTC
README
另一个Twitter流PHP库。目前它只适用于公共流,使用过滤器方法。
索引
安装
composer require mineur/twitter-stream-api:dev-master
基本初始化
使用您的Twitter API令牌实例化GuzzleHttpClient适配器。然后使用一些关键词开始消费Twitter的流! :)
如果您没有Twitter API凭证,请查看以下链接: 如何获取您的Twitter访问令牌
use Mineur\TwitterStreamApi\Http\GuzzleStreamClient; use Mineur\TwitterStreamApi\PublicStream; $streamClient = new GuzzleStreamClient( 'consumer_key', 'consumer_secret', 'access_token', 'access_token_secret' ); PublicStream::open($streamClient) ->listenFor([ 'your', 'keywords', 'list' ]) ->consume();
在使用Twitter流时,您不能使用同一个账户打开两条流线。您应该创建另一个应用账户并创建此库的新实例。
回调方法
如果您想修改原始输出,也可以使用回调
use Mineur\TwitterStreamApi\Tweet; PublicStream::open($streamClient) ->listenFor([ 'your', 'keywords', 'list' ]) ->do(function(Tweet $tweet) { echo "$tweet->getUser() tweeted: $tweet->getText()"; });
通过用户ID过滤推文
在这个例子中,您将只获取与ID对应的用户的推文。
$myTwitterId = '1234567'; PublicStream::open($streamClient) ->tweetedBy([ $myTwitterId ]) ->consume();
通过语言过滤关键词
在这个例子中,您将只获取您关键词列表中以西班牙语编写的推文。
PublicStream::open($streamClient) ->listenFor([ 'keywords', 'list' ]) ->setLanguage('es') ->consume();
推文对象
一旦您从PublicStream接收输出,例如当您使用do
回调函数时,输出始终是 hydrated Tweet 值对象。
您可以使用以下方法访问它
- 使用getter
// Get specific data from the object $tweet->getText();
- 作为一个数组
// Transform object to an array, then access to the data $aTweet = $tweet->toArray(); $aTweet['text'];
- 序列化
// A complete serialized object to enqueue it, for example $tweet->serialized();
集成
对于Symfony集成,您可以参考以下捆绑包:Mineur Twitter Stream Api Bundle
运行测试
composer install ./bin/phpunit
要检查覆盖率,只需添加
./bin/phpunit --coverage-text
待办事项
- STREAMING_ENDPOINT应该由客户端通过简单的字符串注入来更改
- 在文档中添加过滤器的链接
- 使用单元测试测试此库的第一个版本
- 处理用户即时删除推文的情况。
- 添加
filter_level
功能 - 添加跟踪
location
功能