rouxtaccess / laravel-mrmessaging
为 Laravel 的 SMS 门户通知通道
Requires
- php: >=8.2
- illuminate/config: >=10.0
- illuminate/http: >=10.0
- illuminate/notifications: >=10.0
Requires (Dev)
- mockery/mockery: ^1.0
- roave/security-advisories: dev-latest
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)。有关更多信息,请参阅 许可证文件。