biegalski-llc / notification-tracker
Notification Tracker 是一款 Laravel 包,它使开发者能够无缝跟踪和管理用户通知的生命周期。深入了解通知状态(已发送、已投递、已读)、内容和接收者交互。
Requires
- php: ^8.2
- illuminate/contracts: ^10.0||^11.0
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- larastan/larastan: ^2.9
- laravel/pint: ^1.14
- nunomaduro/collision: ^8.1.1||^7.10.0
- orchestra/testbench: ^9.0.0||^8.22.0
- pestphp/pest: ^2.34
- pestphp/pest-plugin-arch: ^2.7
- pestphp/pest-plugin-laravel: ^2.3
- phpstan/extension-installer: ^1.3
- phpstan/phpstan-deprecation-rules: ^1.1
- phpstan/phpstan-phpunit: ^1.3
- spatie/laravel-ray: ^1.35
This package is not auto-updated.
Last update: 2024-09-24 20:51:54 UTC
README
Notification Tracker 是一款 Laravel 包,它使开发者能够无缝跟踪和管理用户通知的生命周期。深入了解通知状态(已发送、已投递、已读)、内容、接收者交互以及更多。
此包旨在成为 Mailgun Webhooks For Laravel 包的有意义的替代品。它旨在更灵活、更易于使用且更少有偏见。目标是针对许多通知服务,而不仅仅是单一服务。
每个项目都有不同的需求。在核心上,Notification Tracker 充当第三方服务 Webhook 发送的notification数据的简单摄取工具。然后它触发 Laravel 事件,允许您监听并进行任何需要的操作。这包括存储内容、更新状态、转发电子邮件或短信等等。
这种方法的灵活性使您能够完全控制如何在 Laravel 应用程序中处理和加工您的notification数据。
安装
您可以通过composer安装此包
composer require biegalski-llc/notification-tracker
配置
Mailgun
为了跟踪 Mailgun 通知,您需要在 config/services.php
文件中添加以下内容。
'mailgun' => [ 'webhook_signing_key' => env('MAILGUN_WEBHOOKS_SIGNING_KEY', null) ],
此外,您还需要使用以下中间件为您的 Mailgun webhook 路由。
BiegalskiLLC\NotificationTracker\Providers\Email\Mailgun\Middleware\ValidateMailgunWebhookMiddleware::class
用法
$notificationTracker = new BiegalskiLLC\NotificationTracker();
Mailgun
$notificationTracker->mailgun() ->payload( $request->all() ) ->status('delivered') //change to specific webhook status ->run();
Postmark
$notificationTracker->postmark() ->payload( $request->all() ) ->status('delivered') //change to specific webhook status ->run();
自定义处理程序
传递您自己的自定义处理程序。参考现有处理程序以获取示例。
use App\Handlers\CustomHandler; $notificationTracker->email() ->handler( CustomHandler::class ) ->payload( $request->all() ) ->status('delivered') //change to specific webhook status ->run();
事件/监听器
当通知跟踪器运行时,它将触发一个包含通知内容和细节的事件。您可以为此事件监听并使用通知数据。
存储通知内容、更新投递状态、转发电子邮件或短信,或您能想到的任何其他操作。
NotificationTrackerEmailEvent
namespace App\Listeners; use BiegalskiLLC\NotificationTracker\Events\NotificationTrackerEmailEvent; class NotificationTrackerEmailListener { public function handle(NotificationTrackerEmailEvent $event) { //do something with the notification data } }
NotificationTrackerSmsEvent
namespace App\Listeners; use BiegalskiLLC\NotificationTracker\Events\NotificationTrackerSmsEvent; class NotificationTrackerSmsListener { public function handle(NotificationTrackerSmsEvent $event) { //do something with the notification data } }
测试
composer test
变更日志
有关最近更改的更多信息,请参阅变更日志。
贡献
有关详细信息,请参阅贡献。
安全漏洞
请参阅我们的安全策略了解如何报告安全漏洞。
鸣谢
- Michael Biegalski
- paulredmond - Laravel 中间件以验证已签名的 Mailgun Webhook。
许可
MIT 许可证 (MIT)。请参阅许可文件以获取更多信息。