A Laravel Notification channel for sending SMS messages with Twilio.
You can install the package via composer:
composer require clevyr/laravel-twilio-channelConfigure an account on Twilio, and then add the following env vars:
TWILIO_SID=
TWILIO_AUTH_TOKEN=
TWILIO_PHONE_NUMBER=
Next, publish the config file with:
php artisan vendor:publish --provider="Clevyr\LaravelTwilioChannel\LaravelTwilioChannelServiceProvider"This is the contents of the published config file (without descriptive comments):
return [
'sid' => env('TWILIO_SID'),
'auth_token' => env('TWILIO_AUTH_TOKEN'),
'phone_number' => env('TWILIO_PHONE_NUMBER'),
];In your Laravel notifications:
- Implement the
TwilioNotificationinterface - Add the
TwilioChannelto yourviareturn array value - Build a
toTwiliofunction that returns aTwilioMessageobject
<?php
namespace App\Notifications;
use Clevyr\LaravelTwilioChannel\Channels\TwilioChannel;
use Clevyr\LaravelTwilioChannel\Contracts\TwilioNotification;
use Clevyr\LaravelTwilioChannel\Messages\TwilioMessage;
use Illuminate\Notifications\Notification;
class MyNotification extends Notification implements TwilioNotification {
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return [TwilioChannel::class];
}
/**
* Get the twilio representation of the notification.
*
* @param mixed $notifiable
* @return \Clevyr\LaravelTwilioChannel\Messages\TwilioMessage
*/
public function toTwilio($notifiable)
{
return (new TwilioMessage)
->line('Your first line.')
->line('A second line, with a break between the last line.');
}By default, TwilioChannel will use your notifiable's phone_number field
to send an SMS message, which must be in a format such as 8884445555.
To override the phone_number and use a different field, set the
twilioPhoneNumberField instance variable in your notifiable class:
class User extends Authenticatable
{
public $twilioPhoneNumberField = 'primary_phone_number';
//
}If you wish to send an on-demand notification, and not use a notifiable object
at all, you can do that:
use Illuminate\Support\Facades\Notification;
Notification::route('twilio', '5555555555')
->notify(new InvoicePaid($invoice));
composer testcomposer analyseFormatting w/ Laravel Pint
composer formatPlease see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.