sideso / hablame
Hablame Notification Channel for Laravel 6, 7, 8, 9, 10 and 11
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^6.4 || ^7.0
- illuminate/notifications: ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
- sideso/sms-message: ^1.1.2
README
This package makes it easy to send notifications using Hablame with Laravel 6.x, 7.x, 8.x and 9.x
Contents
Installation
You can install this package via composer:
composer require sideso/hablame
Setting up the hablame service
You may publish the config file and add your hablame token, api key and account number to your config/hablame.php:
php artisan vendor:publish --provider="Sideso\Hablame\HablameServiceProvider" --tag="config"
// config/hablame.php ... 'hablame' => [ 'account' => env('HABLAME_ACCOUNT',''), 'api_key' => env('HABLAME_API_KEY',''), 'token' => env('HABLAME_TOKEN'.''), 'source_code' => env('HABLAME_SOURCE_CODE',''), ], ...
Usage
You can use the channel in your via() method inside the notification:
use Illuminate\Notifications\Notification; use NotificationChannels\hablame\HablameMessage; class AccountApproved extends Notification { public function via($notifiable) { return ["hablame"]; } public function tohablame($notifiable) { return (new HablameMessage)->content("Your account was approved!"); } }
In your notifiable model, make sure to include a routeNotificationForhablame() or routeNotificationForSMS() method, which returns a phone number.
public function routeNotificationForhablame() { return $this->phone; }
On-Demand Notifications
Sometimes you may need to send a notification to someone who is not stored as a "user" of your application. Using the Notification::route method, you may specify ad-hoc notification routing information before sending the notification:
Notification::route('hablame', '573001234567') ->notify(new InvoicePaid($invoice));
Bulk Messages
If you excpet to send bulk messages, you can use the following method to send a message to multiple recipients.
use Sideso\Hablame\HablameChannel; use Sideso\Hablame\Hablame; $bulk = [ [ 'numero' => '3000000001', 'sms' => 'Hello World!', ], [ 'numero' => '3000000002', 'sms' => 'Hello World! (again)', ], ; $sms = new HablameChannel(app(Hablame::class)); $sms->bulkSend($bulk);
Available Message methods
content()
: Set a content of the notification message. This parameter should be no longer than 918 char(6 message parts).
sourceCode()
: Set the Source Code name to be used as origin.
requestProofOfDelivery()
: Set the request proof of delivery to be used as origin (Extra cost).
priority()
: Set the priority of the message. (True = Transactional, False = Marketing).
flash()
: Set the if the message should be flash. (True = Flash, False = Normal).
senDate()
: Set the date and time when the message should be sent. (Not used is priority is set to true).
withCallback()
: Set the callback function to be executed when the message is sent.
callBackFunction($notifiable, \Illuminate\Notifications\Notification $notification, \Sideso\SMS\Message $message){ //Do something } $message->withCallback('callBackFunction');
tags()
: Set the tags to be used to send the message.
Available Events
Sideso\SMS\SMSSent
: This event is fired when the message is sent.
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email ctrujillo@sideso.com.co instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.