carropublic/laraveltwilio

Laravel 的 Twilio SMS 通知包装器

6.0.1-beta 2024-01-18 04:10 UTC

README

Latest Version on Packagist Total Downloads

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 来验证。 $tokenconfig('laraveltwilio.auth_token')。我们不直接使用它,因为它可能是动态的。

use CarroPublic\LaravelTwilio\Request\ValidateTwilioIncomingRequestSignature;

ValidateSignatureOfRequest::isValidRequest($token, $request);

沙箱模式

如何启用沙箱模式

  1. 注册一个闭包以返回是否启用测试 \CarroPublic\LaravelTwilio\LaravelTwilioManager::registerTestingValidator

示例

LaravelTwilioManager::registerSandboxValidator(function () {
    return !is_production();
});
  1. 否则,使用 TWILIO_TESTING_ENABLE 来确定是否在沙箱模式下运行。默认 false

如何绕过沙箱 $phone 验证器

  • 注册一个闭包以返回是否启用沙箱 \CarroPublic\LaravelTwilio\LaravelTwilioSender::registerValidPhoneForSandbox

示例

LaravelTwilioSender::registerValidPhoneForSandbox(function ($phoneNumber) {
    return $phoneNumber == "+84111111111";
}

变更日志

请参阅 changelog 了解最近的变化。

测试

$ composer test

贡献

请参阅 contributing.md 了解详情和待办事项清单。

安全

如果您发现任何安全相关的问题,请通过作者的电子邮件而不是使用问题跟踪器。

致谢

许可证

请参阅 许可证文件 了解更多信息。