biegalski-llc/notification-tracker

Notification Tracker 是一款 Laravel 包,它使开发者能够无缝跟踪和管理用户通知的生命周期。深入了解通知状态(已发送、已投递、已读)、内容和接收者交互。

dev-main 2024-09-09 22:30 UTC

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

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献

安全漏洞

请参阅我们的安全策略了解如何报告安全漏洞。

鸣谢

许可

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