carloscgo/laravel-twitter-streaming

轻松地在Laravel应用中处理Twitter流API

1.0.4 2018-08-14 22:35 UTC

This package is not auto-updated.

Last update: 2024-09-29 06:02:33 UTC


README

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

Twitter提供了一个流API,您可以利用它做一些有趣的事情,例如监听包含特定字符串或用户可能执行的操作(例如点赞推文、关注某人等)的推文。此包使得使用API变得非常简单。

TwitterStreaming::publicStream($business_id)
->whenHears('#laravel', function(array $tweet) {
    echo "{$tweet['user']['screen_name']} tweeted {$tweet['text']}";
})
->startListening();

这是一个示例Laravel应用,其中已预安装此包。它包含一个artisan命令,用于启动监听过程。

安装

您可以通过composer安装此包

composer require carloscgo/laravel-twitter-streaming

您必须安装此服务提供者。

// config/app.php
'providers' => [
    ...
    CarlosCGO\LaravelTwitterStreaming\TwitterStreamingServiceProvider::class,
];

此包还包括一个外观,它提供了调用类的一种简单方式。

// config/app.php
'aliases' => [
    ...
    'TwitterStreaming' => CarlosCGO\LaravelTwitterStreaming\TwitterStreamingFacade::class,
];

必须使用此命令发布配置文件

php artisan vendor:publish --provider="CarlosCGO\LaravelTwitterStreaming\TwitterStreamingServiceProvider" --tag="config"

它将被发布在config/laravel-twitter-streaming.php

return [

    /**
     * To work with Twitter's Streaming API you'll need some credentials.
     *
     * If you don't have credentials yet, head over to https://apps.twitter.com/
     */

    'table' => env('TWITTER_CONFIG_TABLE'),

    'where_field_business' => env('TWITTER_FIELD_BUSINESS'),

];

获取凭证

为了使用此包,您需要从Twitter获取一些凭证。请前往Twitter应用管理以创建一个应用。

创建您的应用后,点击“密钥和访问令牌”选项卡以获取您的consumer_keyconsumer_secretaccess_tokenaccess_token_secret

Keys and access tokens tab on Twitter

使用方法

目前,此包适用于公共流和用户流。两者都提供了startListening函数来启动监听过程。除非您取消,否则您的PHP进程将无限期地执行该函数。函数之后的代码将不会运行。

下面的例子中使用了外观。如果您不喜欢外观,可以将其替换为

app(CarlosCGO\LaravelTwitterStreaming\TwitterStreaming::class)

公共流

公共流可以用来监听正在被推特的特定词语。

whenHears的第一个参数必须是一个字符串或包含您想监听的词语的数组。第二个参数应该是一个可调用的,当您的词语在Twitter上被使用时将被执行。

use TwitterStreaming;

TwitterStreaming::publicStream($business_id)
->whenHears('#laravel', function(array $tweet) {
    echo "{$tweet['user']['screen_name']} tweeted {$tweet['text']}";
})
->startListening();

用户流

use TwitterStreaming;

TwitterStreaming::userStream($business_id)
->onEvent(function(array $event) {
    if ($event['event'] === 'favorite') {
        echo "Our tweet {$event['target_object']['text']} got favorited by {$event['source']['screen_name']}";
    }
})
->startListening();

关于如何在生产环境中运行的建议

在生产环境中使用时,您可以选择创建一个artisan命令来监听来自Twitter的传入事件。您可以使用Supervisord来确保该命令始终运行。

一些建议

这些API是实时工作的,因此可能会报告大量活动。如果您需要处理这些活动的某些重负载工作,最好将这项工作放入队列中,以保持监听过程快速。

更新日志

请参阅更新日志以获取更多关于最近更改的信息。

测试

$ composer test

贡献

请参阅贡献以获取详细信息。

许可证

麻省理工学院许可证(MIT)。请参阅许可文件获取更多信息。