spatie/laravel-twitter-streaming-api

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

资助包维护!
spatie

安装次数: 45 082

依赖项: 5

建议者: 0

安全: 0

星星: 200

观察者: 6

分支: 22

2.2.0 2024-02-28 09:53 UTC

This package is auto-updated.

Last update: 2024-08-28 10:55:08 UTC


README

Latest Version on Packagist Software License Total Downloads

Twitter提供了一种流式API,您可以使用它来做一些有趣的事情,例如监听包含特定字符串或用户可能采取的操作的推文(例如喜欢一条推文、关注某人等)。此包使您能够轻松地处理API。

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

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

支持我们

我们在创建最佳开源包上投入了大量的资源。您可以通过购买我们的付费产品之一来支持我们。

我们非常感谢您从家乡寄给我们明信片,说明您正在使用我们的哪个包。您可以在我们的联系页面上找到我们的地址。我们在我们的虚拟明信片墙上发布所有收到的明信片。

安装

您可以通过composer安装此包

composer require spatie/laravel-twitter-streaming-api

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

php artisan vendor:publish --provider="Spatie\LaravelTwitterStreamingApi\TwitterStreamingApiServiceProvider" --tag="config"

它将在config/laravel-twitter-streaming-api.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://developers.twitter.com/
     */

    'handle' => env('TWITTER_HANDLE'),

    'api_key' => env('TWITTER_API_KEY'),

    'api_secret_key' => env('TWITTER_API_SECRET_KEY'),

    'bearer_token' => env('TWITTER_BEARER_TOKEN'),
];

获取凭证

为了使用此包,您需要从Twitter获取一些凭证。请转到Twitter开发者门户创建一个应用程序。

创建您的应用程序后,点击“密钥和令牌”选项卡以获取您的bearer_tokenapi_keyapi_secret_key

Keys and tokens tab on Twitter

使用方法

目前,此包与公共流和用户流一起工作。`PublicStream`和`UserStream`类都提供了一个`startListening`函数,用于启动监听过程。除非您取消它,否则您的PHP进程将无限期地执行该函数。该函数之后的代码将不会运行。

以下示例使用了外观。如果您不喜欢外观,可以将它们替换为

app(Spatie\LaravelTwitterStreamingApi\TwitterStreamingApi::class)

公共流

公共流可用于监听正在被推特的特定单词。

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

use TwitterStreamingApi;

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

用户流

use TwitterStreamingApi;

TwitterStreamingApi::userStream()
->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

贡献

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

安全

如果您发现有关安全性的错误,请通过security@spatie.be发送邮件,而不是使用问题跟踪器。

致谢

许可证

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