boyo / laravel-twilio
使用 Twilio 的 Laravel 通知
v1.2
2022-10-13 19:36 UTC
Requires
- php: >=7.2
- laravel/framework: >=8.0
- twilio/sdk: ^5.0
This package is auto-updated.
Last update: 2024-09-14 00:09:41 UTC
README
此包为 Twilio 服务添加了一个通知通道。您可以使用它发送短信。未来可能还有其他通道可用。
安装
通过 Composer 安装。
配置
将以下内容添加到您的服务配置文件中。
'twilio' => [ 'token' => env('TWILIO_TOKEN',''), 'sid' => env('TWILIO_SID',''), 'send' => env('TWILIO_SEND',false), 'from' => env('TWILIO_FROM',''), 'log' => env('TWILIO_LOG',true), 'log_channel' => env('TWILIO_LOG_CHANNEL','stack'), 'prefix' => '', 'allow_multiple' => false, ],
- log 如果消息应该写入日志文件
- log_channel 要记录消息的日志通道
- send 如果应该发送消息(生产/开发环境)
- bulglish 如果需要将西里尔文文本转换为拉丁字母以用于短信(西里尔文消息限制为 67 个字符)
- allow_multiple 如果允许超过 160 个字符的短信(按多条短信计费)
发送测试
要发送测试消息,请使用以下 artisan 命令
php artisan twilio:test phone --message='content' --channel=sms
直接使用
您可以实例化一个 Boyo\Twilio\TwilioMessage
对象并立即发送。
use Boyo\Twilio\TwilioMessage; use Boyo\Twilio\TwilioSender; class MyClass { public function myFunction() { $message = (new TwilioMessage())->to('359888888888')->sms('SMS text'); $client = new TwilioSender(); $client->send($message); } }
与通知一起使用
- 创建一个扩展
Boyo\Twilio\TwilioMessage
的消息文件。它可以在构造函数中接收您所需的数据,并应实现一个build()
方法来定义消息的文本内容 - 一个好的做法是渲染一个视图文件,这样您的消息内容就在您的视图中。您只需定义您要使用的交付通道的方法。
use Boyo\Twilio\TwilioMessage; class MyMessage extends TwilioMessage { public function __construct($data) { $this->id = $data->id; // your unique message id, add other parameters if needed } public function build() { // set your sms text $this->sms('SMS text'); return $this; } }
- 在您的通知类中,您现在可以将 Twilio 通道包含在
via()
方法返回的$via
数组中。
use Boyo\Twilio\TwilioChannel; via($notifiable) { // ... $via[] = TwilioChannel::class; return $via }
在同一通知类中,还应定义一个 toSms()
方法
public function toSms($notifiable) { return (new MyMessage($unique_id))->to($notifiable->phone); }
通道方法是您定义要使用的交付通道的地方。
- sms 仅通过短信交付(这是默认值,如果您省略了通道方法)
- 未来可能还有其他 Twilio 通道可用