rouxtaccess/laravel-mrmessaging

为 Laravel 的 SMS 门户通知通道

1.3.0 2024-04-30 08:25 UTC

This package is auto-updated.

Last update: 2024-09-30 09:17:55 UTC


README

版本支持

Laravel 10+

安装

通过 Mr Messaging 在 Laravel 中发送 SMS 通知。

步骤 1: 使用 composer 安装包

composer require rouxtaccess/laravel-mrmessaging

该包将自动注册其服务提供程序并合并其配置

步骤 2: 将您的 Mr Messaging 凭证添加到您的 .env 文件

必需的 env 配置: (更多信息请参见下面的高级配置)

    MR_MESSAGING_USERNAME=
    MR_MESSAGING_PASSWORD=
    MR_MESSAGING_DELIVERY_ENABLED=true

步骤 3: 将您的路由信息添加到通知模型

我们支持几种将 SMS 路由到正确号码的方式。

默认情况下,使用通知模型的 routeNotificationForSms 方法。

此方法应返回要发送 SMS 的电话号码。

但如果您想为 MrMessaging 专门配置电话号码,也可以在通知模型上使用 routeNotificationForMrMessaging 方法来覆盖默认的 routeNotificationForSms

示例

    public function routeNotificationForSms($notification)
    {
        return $this->customer_msisdn;
    }

注意:Mr Messaging 接收不带前面加号的 E.164 格式的号码。在我们的方面,我们将在将其发送到 MrMessaging 之前从电话号码中删除任何加号或空格。

步骤 4: 启用此通知的通道

'mrmessaging' 添加到通知的 via 方法。

    public function via(object $notifiable): array
    {
        return ['mail', 'mrmessaging'];
    }

步骤 5: 格式化您的消息

toMrMessaging 方法添加到您的通知。

   use Illuminate\Notifications\Messages\MrMessagingMessage;
   
   public function toMrMessaging(object $notifiable): MrMessagingMessage
    {
        return (new MrMessagingMessage)
            ->content('Your SMS message content');
    }

步骤 6: 发送您的通知

就这些了!发送您的通知,它们将发送到 Mr Messaging。

    $user->notify(new YourNotification());

附加信息

配置

您可以使用以下命令发布配置文件:

php artisan vendor:publish --provider="Illuminate\Notifications\MrMessagingServiceProvider"

php artisan vendor:publish --tag=laravel-mrmessaging-config

您将注意到配置文件中有一些关于存储事件ID的额外配置选项

事件跟踪

Mr Messaging 通过两种不同的机制支持事件跟踪。

选项 1: Laravel 通知事件

默认情况下,您可以始终挂钩到 Laravel 的事件 来监听 NotificationSentEvent 事件

我们返回从 MrMessaging 获得的全部事件ID的数组

这是一个数组,而不是字符串,因为多部分消息(MrMessaging 为每个部分提供事件ID)

选项 2: 缓存

如果通过配置启用,我们将存储所有短信消息发送的事件ID在缓存中,持续时间为可配置的时间(默认为 24 小时)

如果您只想简单地跟踪事件ID直到从 Mr Messaging 获得投递报告,这将非常有用

许可证

MIT 许可证 (MIT)。有关更多信息,请参阅 许可证文件