eric-famiglietti / laravel-slack-events
Laravel 与 Slack Events API 集成包
Requires
- php: ^7.1
- illuminate/http: ^5.6
- illuminate/routing: ^5.6
- illuminate/support: ^5.6
Requires (Dev)
- orchestra/testbench: ^3.6
- phpunit/phpunit: ^7.0
This package is not auto-updated.
Last update: 2024-09-28 04:20:35 UTC
README
Laravel 集成 Slack Events API 的包。
简介
此包简化了在 Laravel 应用中设置 webhook 以接收通过 Slack Events API 发送的请求的过程。包处理令牌身份验证和 URL 验证,并将特定事件的处理留给您。事件可以通过作业或事件监听器进行处理。
在继续之前,建议您熟悉 Slack Events API 和可用的 事件类型,以便正确设置 Slack 与您的应用程序通信。
要求
- PHP 7.1 或更高版本
- Laravel 5.6
注意:这些要求是人为设置的。该包可能可以在更早版本的 Laravel 上运行,但仅与 Laravel 5.6 进行了测试。
安装
使用 Composer 安装最新版本
$ composer require eric-famiglietti/laravel-slack-events
使用以下方法发布配置文件
$ php artisan vendor:publish --provider="LaravelSlackEvents\SlackEventsServiceProvider" --tag="config"
用法
设置
此包需要设置一个 SLACK_EVENTS_TOKEN
环境变量。可以在 Slack 应用程序的仪表板上找到 验证令牌(https://api.slack.com/apps/<app_id>),在 应用程序凭据 部分下。
为了本指南的目的,我们将使用的 webhook URL 为 https://app.tld/slack/events
。
首先,使用路由宏创建 webhook 路由
Route::slackEventsWebhook('slack/events');
然后,将路由添加到 VerifyCsrfToken
中间件的 $except
数组中
protected $except = [ 'slack/events', ];
创建 webhook 后,配置 Slack 将事件请求发送到 webhook。这可以在 Slack 应用程序的仪表板上的事件订阅页面(https://api.slack.com/apps/<app_id>/event-subscriptions)中完成。
如果您的应用程序是公开可访问的,您将开始接收事件请求到 webhook。事件可以通过作业或事件监听器进行处理。
作业
当事件被触发时可以执行作业。例如,当接收到 reaction_added
时分发作业,将以下内容添加到 config/slack-events.php
'jobs' => [ 'reaction_added' => \App\Jobs\SlackEvents\HandleReactionAdded::class, ],
作业将通过其构造函数接收事件负载
namespace App\Jobs\SlackEvents; class HandleReactionAdded { public $payload; public function __construct(array $payload) { $this->payload = $payload; } public function handle() { // ... } }
事件
Laravel 事件监听器可以处理 Slack 事件请求。例如,要监听 reaction_added
事件,将元素添加到 EventServiceProvider
的 $listen
属性中
protected $listen = [ 'slack-events::reaction_added' => [ App\Listeners\SlackEvents\ReactionAddedListener::class, ], ];
相关的事件监听器可能如下所示
namespace App\Listeners\SlackEvents; class ReactionAddedListener { public function handle(array $payload) { // ... } }
测试
使用以下命令运行包含的测试
$ vendor/bin/phpunit
致谢
特别感谢 ohdearapp/laravel-ohdear-webhooks 包,本包在很大程度上基于此包。
许可
此包在 MIT 许可证(MIT)下提供。有关更多信息,请参阅许可文件。