mineur/twitter-stream-api

Twitter流数据收集器

安装: 66

依赖项: 1

建议者: 0

安全: 0

星星: 11

关注者: 1

分支: 2

开放问题: 0

类型:php-library

dev-master 2017-07-16 21:56 UTC

This package is not auto-updated.

Last update: 2024-09-22 03:27:32 UTC


README

License Build Status Code Climate Latest Unstable Version Total Downloads

另一个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功能