boyo / laravel-link-mobility
Laravel 通知与 Link Mobility 集成
v1.1
2023-08-28 11:16 UTC
Requires
- php: >=7.3
- boyo/bulglish: *
- laravel/framework: >=6.0
This package is auto-updated.
Last update: 2024-09-28 13:46:04 UTC
README
本包为linkmobility.com服务添加了一个通知通道。您可以使用它发送短信和Viber for Business消息。
安装
composer require boyo/laravel-link-mobility
配置
将以下内容添加到您的服务配置文件中。
'link-mobility' => [ 'api_key' => env('LINK_MOBILITY_API_KEY',''), 'api_secret' => env('LINK_MOBILITY_API_SECRET',''), 'service_id' => env('LINK_MOBILITY_SERVICE_ID', '1'), 'sc_sms' => env('LINK_MOBILITY_SMS_SENDER', ''), 'sc_viber' => env('LINK_MOBILITY_VIBER_SENDER', ''), 'prefix' => '', 'log' => env('LINK_MOBILITY_LOG',true), 'log_channel' => env('LINK_MOBILITY_LOG_CHANNEL','stack'), 'send' => env('LINK_MOBILITY_SEND',false), 'bulglish' => true, 'allow_multiple' => false, ],
- api_key 您的 LINK Mobility API_KEY
- api_secret 您的 LINK Mobility API_SECRET
- service_id 您的 LINK Mobility 服务 ID
- log 如果消息应该写入日志文件
- log_channel 记录消息的日志通道
- send 如果消息应该被发送(生产/开发环境)
- bulglish 如果西里尔文文本应该转换为拉丁字母以用于短信(西里尔文消息限制为67个字符)
- allow_multiple 如果允许超过160个字符的短信(按多个消息计费)
发送测试
要发送测试消息,请使用以下 artisan 命令
php artisan link-mobility:test phone --message='内容' --channel=sms --promo
- channel 可以有以下值:sms|viber|viber-sms
- promo 将发送带有图片和按钮的促销测试消息
直接使用
您可以实例化一个 Boyo\LinkMobility\LinkMobilityMessage
对象并立即发送。
use Boyo\LinkMobility\LinkMobilityMessage; use Boyo\LinkMobility\LinkMobilitySender; class MyClass { public function myFunction() { $message = (new LinkMobilityMessage())->to('359888888888')->channel('viber-sms')->sms('SMS text')->viber('Viber text'); $client = new LinkMobilitySender(); $client->send($message); } }
与通知一起使用
- 创建一个扩展
Boyo\LinkMobility\LinkMobilityMessage
的消息文件。它可以在构造函数中接受您所需的数据,并应实现一个build()
方法来定义消息的文本内容 - 良好的做法是渲染一个视图文件,以便您的消息内容在视图中。您只需定义您将要使用的交付渠道的方法。
use Boyo\LinkMobility\LinkMobilityMessage; class MyMessage extends LinkMobilityMessage { 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'); // set your viber text $this->viber('Viber text'); return $this; } }
- 在您的通知类中,您现在可以在
via()
方法返回的$via
数组中包含 LinkMobility 通道。
use Boyo\LinkMobility\LinkMobilityChannel; via($notifiable) { // ... $via[] = LinkMobilityChannel::class; return $via }
在同一通知类中,您还应定义一个方法 toSms()
public function toSms($notifiable) { return (new MyMessage($unique_id))->to($notifiable->phone)->channel('viber-sms'); }
通道方法是您定义要使用的交付渠道的地方。
- sms 仅通过短信发送(这是默认值,如果您省略通道方法)
- viber 仅通过 Viber 发送
- viber-sms 尝试通过 Viber 发送,如果失败则通过短信发送