spatie / twitter-streaming-api
轻松使用Twitter流式API
Requires
- php: ^8.0
- redwebcreation/twitter-stream-api: ^0.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpunit/phpunit: ^9
- spatie/laravel-ray: ^1
- vimeo/psalm: ^4
README
轻松使用Twitter流式API
Twitter提供了一个流式API,您可以使用它进行一些有趣的事情,例如监听包含特定字符串或用户可能执行的操作(例如喜欢推文、关注某人等)的推文。这个包使与API一起工作变得非常简单。
以下是一个快速示例
PublicStream::create( $bearerToken, $apiKey, $apiSecretKey )->whenHears('@spatie_be', function(array $tweet) { echo "We got mentioned by {$tweet['user']['screen_name']} who tweeted {$tweet['text']}"; })->startListening();
没有轮询。该包将与Twitter保持一个开放的https连接,事件将以实时方式传递。
支持我们
我们投入了大量资源来创建一流的开放源代码包。您可以通过购买我们的付费产品之一来支持我们。
我们非常感谢您从您的家乡给我们寄来明信片,并说明您正在使用我们哪个包。您可以在我们的联系页面上找到我们的地址。我们将把所有收到的明信片发布在我们的虚拟明信片墙上。
明信片软件
您可以使用这个包(它是MIT许可的),但如果它进入了您的生产环境,我们非常感谢您从您的家乡给我们寄来明信片,并说明您正在使用我们哪个包。
我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。
最佳明信片将被发布在我们的网站上的开源页面上。
安装
您可以通过composer安装此包
composer require spatie/twitter-streaming-api
获取凭据
为了使用此包,您需要从Twitter获取一些凭据。请访问Twitter开发者门户以创建一个应用程序。
创建您的应用程序后,点击“密钥和令牌”选项卡以检索您的
用法
目前,此包与公共流和用户流一起工作。`PublicStream` 和 `UserStream` 类都提供了一个 `startListening` 函数来启动监听过程。除非您取消它,否则您的PHP进程将无限期地执行该函数。函数之后的代码将不会运行。
公共流
公共流可用于监听正在被推特的特定单词,接收来自特定位置的推文或跟踪一个或多个用户的推文。
监听包含特定单词的推文
whenHears
的第一个参数必须是一个字符串或包含您想要监听的单词或单词数组的数组。第二个参数应该是一个可调用对象,当您的单词在Twitter上被使用时将执行。
PublicStream::create( $bearerToken, $apiKey, $apiSecretKey )->whenHears('@spatie_be', function(array $tweet) { echo "We got mentioned by {$tweet['user']['screen_name']} who tweeted {$tweet['text']}"; })->startListening();
监听来自特定位置的推文
whenFrom
的第一个参数必须是一个包含一个或多个边界框的数组,每个边界框都是一个包含4个元素经纬度对的数组(类似 [<西南点经度>, <西南点纬度>, <东北点经度>, <东北点纬度>]
)。第二个参数应该是一个可调用对象,当您的跟踪位置之一发送推文时将执行。
跟踪旧金山或纽约的所有推文
PublicStream::create( $bearerToken, $apiKey, $apiSecretKey )->whenFrom([ [-122.75, 36.8, -121.75, 37.8], // San Francisco [-74, 40, -73, 41], // New York ], function(array $tweet) { echo "{$tweet['user']['screen_name']} just tweeted {$tweet['text']} from SF or NYC"; })->startListening();
跟踪来自世界各地的所有带有位置的推文
PublicStream::create( $bearerToken, $apiKey, $apiSecretKey )->whenFrom([ [-180, -90, 180, 90] // Whole world ], function(array $tweet) { echo "{$tweet['user']['screen_name']} just tweeted {$tweet['text']} with a location attached"; })->startListening();
监听特定用户的推文
whenTweets
的第一个参数必须是一个字符串或一个包含您希望关注的Twitter用户ID或ID的数组。第二个参数应该是一个可调用的函数,当您关注的用户之一发布推文时,将执行此函数。只有与Twitter用户相关的公共信息将可用。
PublicStream::create( $bearerToken, $apiKey, $apiSecretKey )->whenTweets('92947501', function(array $tweet) { echo "{$tweet['user']['screen_name']} just tweeted {$tweet['text']}"; })->startListening();
用户流
UserStream::create( 'your_handle', $bearerToken, $apiKey, $apiSecretKey )->onEvent(function(array $event) { if ($event['event'] === 'favorite') { echo "Our tweet {$event['target_object']['text']} got favorited by {$event['source']['screen_name']}"; } })->startListening();
一个明智的建议
这些API以实时工作,因此它们可能会报告大量的活动。如果您需要处理这些活动的一些重工作业,最好将其放入队列中,以保持您的监听过程快速。
如果您需要更高级的功能,请考虑查看redwebcreation/twitter-streaming-api。
更新日志
请参阅更新日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全
如果您发现了关于安全性的错误,请通过电子邮件security@spatie.be联系,而不是使用问题跟踪器。
鸣谢
关于Spatie
Spatie是一家位于比利时安特卫普的网页设计公司。您可以在我们的网站上找到所有开源项目的概述在这里。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。