spatie / laravel-twitter-streaming-api
轻松地在Laravel应用程序中处理Twitter流式API
Requires
- php: ^8.0
- illuminate/support: ^8.0|^9.0|^10.0|^11.0
- spatie/twitter-streaming-api: ^2.0.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.0|^10.5
README
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_token
、api_key
和api_secret_key
。
使用方法
目前,此包与公共流和用户流一起工作。`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)。请参阅许可证文件获取更多信息。