boyo / laravel-sinch
Laravel 通知与 Sinch 结合
v1.1
2021-06-28 13:04 UTC
Requires
- php: >=7.2
- boyo/bulglish: *
- guzzlehttp/guzzle: >=6.3
- laravel/framework: >=6.0
This package is auto-updated.
Last update: 2024-09-28 20:25:28 UTC
README
此包为 Sinch 服务添加了通知通道。您可以使用它发送短信。未来可能会提供其他通道。
安装
通过 Composer 安装。
配置
将以下内容添加到您的服务配置文件中。
'sinch' => [ 'api_key' => env('SINCH_API_KEY',''), 'service_plan_id' => env('SINCH_PLAN_ID',''), 'from' => env('SINCH_FROM',''), 'prefix' => '', 'log' => env('SINCH_LOG',true), 'log_channel' => env('SINCH_LOG_CHANNEL','stack'), 'send' => env('SINCH_SEND',false), 'bulglish' => true, 'allow_multiple' => false, ],
- log 如果消息应该写入日志文件
- log_channel 日志通道,将消息记录到该通道
- send 如果消息应该被发送(生产/开发环境)
- bulglish 如果西里尔文文本应该转换为拉丁字母用于短信(西里尔文消息限制为 67 个字符)
- allow_multiple 如果允许超过 160 个字符的短信(按多个消息计费)
发送测试
要发送测试消息,请使用以下 artisan 命令
php artisan sinch:test phone --message='内容' --channel=sms
直接使用
您可以直接实例化一个 Boyo\Sinch\SinchMessage 对象并发送它。
use Boyo\Sinch\SinchMessage; use Boyo\Sinch\SinchSender; class MyClass { public function myFunction() { $message = (new SinchMessage())->to('359888888888')->channel('sms')->sms('SMS text'); $client = new SinchSender(); $client->send($message); } }
与通知一起使用
- 创建一个扩展
Boyo\Sinch\SinchMessage的消息文件。它可以在构造函数中接受您需要的任何数据,并且应该实现一个build()方法,该方法定义消息的文本内容 - 好的做法是渲染一个视图文件,这样您的消息内容就在您的视图中。您只需定义您将要使用的交付通道的方法。
use Boyo\Sinch\SinchMessage; class MyMessage extends SinchMessage { 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; } }
- 在您的通知类中,您现在可以在
via()方法返回的$via数组中包含 Sinch 通道。
use Boyo\Sinch\SinchChannel; via($notifiable) { // ... $via[] = SinchChannel::class; return $via }
在同一个通知类中,您还应该定义一个 toSms() 方法
public function toSms($notifiable) { return (new MyMessage($unique_id))->to($notifiable->phone)->channel('sms'); }
通道方法是在这里定义您希望使用的交付通道。
- sms 仅通过短信交付(这是默认值,如果您省略通道方法)
- 未来可能提供其他 Sinch 通道