infinitypaul / laravel-notification-channel-termii
Laravel 的 Termii SMS/WhatsApp 通道
1.0.0
2023-06-17 21:00 UTC
Requires
- php: >=7.2
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- orchestra/testbench: ^4.0|^8.0
- phpunit/phpunit: ^8.0|^9.3
README
此包让您轻松使用 Laravel 发送 Termii 通知,就像周日早晨喝咖啡一样轻松。喝上一口,让我们开始吧。
内容
安装
您可以通过 composer 更快地安装此包,比说 "composer" 还快。
composer require infinitypaul/laravel-notification-channel-termii
服务提供者... 您一定会喜欢的。您要么自己安装它们,要么如果您使用的是 Laravel 5.5 或更高版本,让包自动发现为您做这项工作。
// config/app.php 'providers' => [ ... Infinitypaul\Termii\TermiiServiceProvider::class, ],
设置您的 Termii 账户
是时候告诉 Laravel 您的秘密(即您的 Termii API 密钥)了。同时,添加您喜欢的通道和可选的发送者 ID。将这些悄悄话告诉您的 config/services.php
// config/services.php 'termii' => [ 'api_key' => env('TERMII_API_KEY'), 'from' => env('TERMII_FROM'), 'channel' => 'dnd' //because I know you love 'do not disturb' mode 😉 ]
用法
下一步就像吃派一样简单。只需在通知中的 via() 方法中使用该通道即可。
use Infinitypaul\Termii\TermiiChannel; use Infinitypaul\Termii\TermiiMessage; use Illuminate\Notifications\Notification; class WelcomeSMS extends Notification { public function via($notifiable) { return [TermiiChannel::class]; // see? pie! } public function toTermii($notifiable) { return (new TermiiMessage()) ->content("Thanks For Subscribing to infinitypaul.medium.com. We promise to only send interesting stuff, no cat videos... well, maybe just one."); } }
让我们告诉通知它要去哪里(您要发送到哪部手机)。将 routeNotificationForTermii 方法添加到您的 Notifiable 模型中(例如,您的 User 模型)。
public function routeNotificationForTermii() { return $this->phone; // where `phone` is a field in your users table; }
或者您也可以直接从您的 toTermii() 实现中的 TermiiMessage
类发送。
public function toTermii($notifiable) { return (new TermiiMessage()) ->content("Thanks For Subscribing to infinitypaul.medium.com. We promise to only send interesting stuff, no cat videos... well, maybe just one.") ->to("234100000001"); }
可用的消息方法
TermiiMessage
from('')
: 接受一个字符串 - 代表短信的发送者 ID,可以是字母数字的或设备名称的 WhatsApp。字母数字发送者 ID 的长度应在 3 到 11 个字符之间(例如:CompanyName)。to('')
: 接受一个字符串 - 代表短信的目的地 ID,以国际格式表示(例如:2338013828492)。它是可选的,可以在 notifable 模型中的routeNotificationForTermii()
中设置。content('')
: 接受一个字符串 - 要发送到目标手机号码的消息文本。channel('')
: 接受一个字符串。这是消息发送的路径。它可以是dnd
、whatsapp
或generic
,默认为dnd
。media('')
: 接受一个数组,如果您的通道是whatsapp
。这是一个媒体对象,仅适用于高容量 WhatsApp。当使用媒体参数时,请确保您没有使用 sms 参数。media_url('')
: 接受一个字符串,如果您的通道是whatsapp
。文件资源的 URL。media_option('')
: 接受一个字符串,如果您的通道是whatsapp
。应添加到图像中的标题。
变更日志
对我们的 Termii 之旅感到好奇?请查看 CHANGELOG 了解最近发生了什么。
测试
composer test //(We promise it won't explode.)
安全性
发现了任何安全问题?请通过 infinitypaul@live.com 发送电子邮件给我们。我们承诺会认真对待,而不是使用问题跟踪器。
致谢
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。