Send sms trough AWS SNS.
You can install the package via composer:
composer require peec/aws-laravel-notificationYou must install the service provider:
// config/app.php
'providers' => [
...
NotificationChannels\AWS\AWSSMSServiceProvider::class,
],Add to your config/services.php:
// config/services.php
...
'awssms' => [
'key' => env('AWSSMS_KEY'),
'secret' => env('AWSSMS_SECRET'),
'region' => env('AWSSMS_REGION'),
'from' => env('AWSSMS_FROM'), // optional
'max_price_usd' => '0.50' // Max price, sms wont send if price of the sms is more then this.
],
...Now you can use the channel in your via() method inside the notification:
use NotificationChannels\AWS\AWSSMSChannel;
use NotificationChannels\AWS\AWSSMSMessage;
use Illuminate\Notifications\Notification;
class AccountApproved extends Notification
{
public function via($notifiable)
{
return [AWSSMSChannel::class];
}
public function toAwsSms($notifiable)
{
return (new AWSSMSMessage())
->content("Your {$notifiable->service} account was approved!");
}
}In order to let your Notification know which phone are you sending/calling to, the channel will look for the phone_number attribute of the Notifiable model. If you want to override this behaviour,
add the routeNotificationForAws method to your Notifiable model.
public function routeNotificationForAws()
{
return '+1234567890';
}from(''): Accepts a phone to use as the notification sender.content(''): Accepts a string value for the notification body.type('Transactional'): Either Transactional or Promotional. See aws docs for SNS SMS. The pricing of these vary.
Please see CHANGELOG for more information what has changed recently.
$ composer testIf you discover any security related issues, please email [email protected] instead of using the issue tracker.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.