55
loading...
This website collects cookies to deliver better user experience
TWILIO_SID=YOUR_ACCOUNT_SID
TWILIO_AUTH_TOKEN=YOUR_ACCOUNT_AUTH_TOKEN
TWILIO_FROM_NUMBER=YOUR_ACCOUNT_FROM_NUMBER(e.g. +1XXXXXXXXXX)
'twilio' => [
'sid' => env('TWILIO_SID'),
'auth_token' => env('TWILIO_AUTH_TOKEN'),
'from_number' => env('TWILIO_FROM_NUMBER')
]
composer require twilio/sdk
php artisan make:provider CustomServiceProvider
...
'twilio' => [
'driver' => 'single',
'path' => storage_path('logs/twilio.log'),
'level' => 'debug',
],
...
php artisan make:controller TwilioSmsController
Route::any(
'/twilio/send-test',
[TwilioSmsController::class, 'sendTest'])
->name('twilio.send-test');
php artisan make:model TwilioSms -m
php artisan make:model TwilioSmsLog -m
/**
* Twilio statusCallBack webhook
* is-twilio-request middleware makes sure only twilio has access to this route
*/
Route::any('/twilio/webhook/status-changed', [TwilioController::class, 'statusChanged'])->middleware(['is-twilio-request'])->name('api.twilio.status-changed');
php artisan make:middleware TwilioRequestIsValid
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
...
'is-twilio-request' => \App\Http\Middleware\TwilioRequestIsValid::class,
];
...
...
/**
* Twilio message received webhook
* is-twilio-request middleware makes sure only twilio has access to this route
*/
Route::any('/twilio/webhook/message-received', [TwilioSmsController::class, 'messageReceived'])
->middleware(['is-twilio-request'])
->name('api.twilio.message-received');
...
...