carropublic / laraveltwilio
Laravel 的 Twilio SMS 通知包装器
6.0.1-beta
2024-01-18 04:10 UTC
Requires
- illuminate/collections: ~9|~10
- illuminate/events: ~9|~10
- illuminate/support: ~9|~10
- twilio/sdk: ^7.3
Requires (Dev)
- orchestra/testbench: ^8.5
- phpunit/phpunit: ^10.1
- squizlabs/php_codesniffer: ^3.7
This package is not auto-updated.
Last update: 2024-09-23 17:12:17 UTC
README
Laravel 的 Twilio SMS 通知包装器。查看 contributing.md 了解待办事项清单。
安装
通过 Composer
$ composer require carropublic/laraveltwilio
运行以下 vendor publish 命令以发布 Twillo 配置。
php artisan vendor:publish --tag=laraveltwilio.config
更新您的 .env
文件以配置 Twilio,以便发送 SMS 通知。
用法
LaravelNotification
以下是用 Laravel 通知示例使用该包的示例。
创建通知类
class ExampleNotification extends Notification
{
// Which channel this notification should be sent to
public function via($notifiable)
{
return [ SMSChannel::class, WhatsAppChannel::class ];
}
// Notification payload (content) will be sent
public function toSMS($notifiable)
{
return new LaravelTwilioMessage("Message Content");
}
// Notification payload (content) will be sent
public function toWhatsApp($notifiable)
{
return new LaravelTwilioMessage("Message Content");
}
}
创建可通知类
class Contact extends Model {
use Notifiable;
// Phone number to receive
public function routeNotificationForSms()
{
return $this->phone;
}
// Phone number to receive
public function routeNotificationForWhatsapp()
{
return $this->phone;
}
}
从可通知实例发送通知
$contact->notify(new ExampleNotification());
从匿名可通知实例发送通知
Notification::route('sms')->notify(new ExampleNotification());
检查来自 Twilio 的传入消息
当使用 webhook 时,您可以通过验证传入请求是否来自 Twilio 来验证。 $token
是 config('laraveltwilio.auth_token')
。我们不直接使用它,因为它可能是动态的。
use CarroPublic\LaravelTwilio\Request\ValidateTwilioIncomingRequestSignature;
ValidateSignatureOfRequest::isValidRequest($token, $request);
沙箱模式
如何启用沙箱模式
- 注册一个闭包以返回是否启用测试
\CarroPublic\LaravelTwilio\LaravelTwilioManager::registerTestingValidator
示例
LaravelTwilioManager::registerSandboxValidator(function () {
return !is_production();
});
- 否则,使用
TWILIO_TESTING_ENABLE
来确定是否在沙箱模式下运行。默认false
如何绕过沙箱 $phone 验证器
- 注册一个闭包以返回是否启用沙箱
\CarroPublic\LaravelTwilio\LaravelTwilioSender::registerValidPhoneForSandbox
示例
LaravelTwilioSender::registerValidPhoneForSandbox(function ($phoneNumber) {
return $phoneNumber == "+84111111111";
}
变更日志
请参阅 changelog 了解最近的变化。
测试
$ composer test
贡献
请参阅 contributing.md 了解详情和待办事项清单。
安全
如果您发现任何安全相关的问题,请通过作者的电子邮件而不是使用问题跟踪器。
致谢
许可证
请参阅 许可证文件 了解更多信息。