canerdogan / aws-laravel-notification
Send SMS using AWS SNS services
Requires
- php: >=5.6.4
- aws/aws-sdk-php: ^3.0
- illuminate/notifications: ^5.3
- illuminate/support: ^5.1|^5.2|^5.3
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: 4.*
README
Send sms trough AWS SNS.
Contents
Installation
You can install the package via composer:
composer require peec/aws-laravel-notification
You must install the service provider:
// config/app.php 'providers' => [ ... NotificationChannels\AWS\AWSSMSServiceProvider::class, ],
Setting up the AWSSMS service
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. ], ...
Usage
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'; }
Available methods
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.
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email kjelkenes@gmail.com instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.