thinkstudeo / textlocal-notification-channel
Laravel notification channel for Textlocal Api
Installs: 2 858
Dependents: 1
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 1
Open Issues: 0
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^5.0|^6.0
- illuminate/notifications: 5.6.*|5.7.*|5.8.*
- illuminate/support: 5.6.*|5.7.*|5.8.*
Requires (Dev)
- mockery/mockery: ^0.9.5|^1.0
- orchestra/database: ~3.6.0|~3.7.0|~3.8.0
- orchestra/testbench: ~3.6.0|~3.7.0|~3.8.0
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2024-10-24 22:01:34 UTC
README
This package makes it easy to send notifications using Textlocal with Laravel 5.6+
Supports using both Transactional and Promotional accounts with Textlocal at the same time.
Contents
Installation
composer require thinkstudeo/textlocal-notification-channel
Taking advantage of automatic package discovery available since Laravel 5.5, the service provider will be registered automatically.
Setting up the Textlocal service
Add your textlocal accounts, api url and credentials in the config/services.php
file.
The url is required to be set in the config file because, textlocal has different urls for different countries.
Atleast for India, its different. https://api/textlocal.in/send/
... 'textlocal' => [ 'url' => 'https://api.textlocal.com/send/' //or 'https://api.textlocal.in/send/ - for India //Textlocal Transactional Account 'transactional' => [ 'apiKey' => env('TEXTLOCAL_TRANSACTIONAL_KEY'), 'from' => env('TEXTLOCAL_TRANSACTIONAL_FROM', 'TXTLCL') ], //Textlocal Promotional Account 'promotional' => [ 'apiKey' => env('TEXTLOCAL_PROMOTIONAL_KEY'), 'from' => env('TEXTLOCAL_PROMOTIONAL_FROM', 'TXTLCL') ] ], ...
Don't forget to add the keys to your .env
file
...
TEXTLOCAL_TRANSACTIONAL_KEY= <Your Textlocal Transactional Account API KEY>
TEXTLOCAL_TRANSACTIONAL_FROM= <Registered/Approved sender for your Textlocal Transactional Account>
TEXTLOCAL_PROMOTIONAL_KEY= <Your Textlocal Promotional Account API KEY>
TEXTLOCAL_PROMOTIONAL_FROM= <Registered/Approved sender for your Textlocal Promotional Account>
...
Usage
To use the channel, include the NotificationChannels\Textlocal\TextlocalChannel
class in the via()
method of your notification class.
Using Textlocal Promotional Account
use Illuminate\Notifications\Notification; use NotificationChannels\Textlocal\TextlocalChannel; use NotificationChannels\Textlocal\TextlocalMessage; class SendBlackFridaySaleAnnouncement extends Notification { /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [TextlocalChannel::class]; } /** * Get the Textlocal / SMS representation of the notification. * * @param mixed $notifiable * @return NexmoMessage */ public function toTextlocal($notifiable) { return (new TextlocalMessage()) //Required // To send sms via your Textlocal promotional account //or transactional() to sent via Textlocal transactional account ->promotional() //Optional //If you don't provide a from, it will pick up the value from the config ->from('TXTLCL') //Optional //If you want to send a copy of the sms to another number eg an Admin ->cc('914545454545') //Required ->content('We are running a BlackFriday sale from tomorrow for 3 days with 40% off. Hurry !!! Grab the opportunity!'); } }
Using Textlocal Transactional Account
use Illuminate\Notifications\Notification; use NotificationChannels\Textlocal\TextlocalChannel; use NotificationChannels\Textlocal\TextlocalMessage; class SendLoginOtp extends Notification { /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [TextlocalChannel::class]; } /** * Get the Textlocal / SMS representation of the notification. * * @param mixed $notifiable * @return NexmoMessage */ public function toTextlocal($notifiable) { return (new TextlocalMessage()) //Required // To send sms via your Textlocal transactional account //or promotional() to sent via Textlocal promotional account ->transactional() //Optional //If you don't provide a from, it will pick up the value from the config ->from('TXTLCL') //Optional //If you want to send a copy of the sms to another number eg an Admin ->cc('914545454545') //Required //When sending through Textlocal transactional account, the content must conform to one of your approved templates. ->content('Your OTP for Application is 234567. It is valid for the next 10 minutes only.'); } }
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
Fill in the env
values in the phpunit.xml.dist
. The tests depends on these values.
<php> <env name="APP_ENV" value="Testing"/> <env name="TEXTLOCAL_TRANSACTIONAL_KEY" value="API_KEY for transactional account"/> <env name="TEXTLOCAL_TRANSACTIONAL_FROM" value="TXTLCL"/> <env name="TEXTLOCAL_PROMOTIONAL_KEY" value="API_KEY for transactional account"/> <env name="TEXTLOCAL_PROMOTIONAL_FROM" value="TXTLCL"/> <env name="TEST_TEXTLOCAL_TRANSACTIONAL_TEMPLATE" value="Your approved template for Textlocal transactional account"/> <env name="TEST_TEXTLOCAL_TRANSACTIONAL_MOBILE" value="Valid phone number"/> <env name="TEST_TEXTLOCAL_TRANSACTIONAL_CC" value="Another Valid Phone number"/> </php>
$ composer test
Security
If you discover any security related issues, please email neerav@thinkstudeo.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.