laravel-notification-channels / jet-sms
Sends SMS using JetSms API
Installs: 1 461
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 5
Forks: 5
Open Issues: 2
Requires
- php: >=7.2
- erdemkeren/jet-sms-php: ^1.0
- illuminate/notifications: ^6.0 || ^7.0
- illuminate/queue: ^6.0 || ^7.0
- illuminate/support: ^6.0 || ^7.0
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-11-07 11:07:41 UTC
README
This package makes it easy to send notifications using JetSms with Laravel 5.5+, 6.x and 7.x.
Contents
Installation
You can install this package via composer:
composer require laravel-notification-channels/jet-sms
Setting up the JetSms service
Add your desired client, username, password, originator (outbox name, sender name) and request timeout
configuration to your config/services.php
file:
... 'JetSms' => [ 'client' => 'http', // or xml 'http' => [ 'endpoint' => 'https://service.jetsms.com.tr/SMS-Web/HttpSmsSend', ], 'xml' => [ 'endpoint' => 'www.biotekno.biz:8080/SMS-Web/xmlsms', ], 'username' => '', 'password' => '', 'originator' => "", // Sender name. 'timeout' => 60, ], ...
Usage
Now you can use the channel in your via() method inside the notification:
use NotificationChannels\JetSms\JetSmsChannel; use NotificationChannels\JetSms\JetSmsMessage; class ResetPasswordWasRequested extends Notification { /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [JetSmsChannel::class]; } /** * Get the JetSms representation of the notification. * * @param mixed $notifiable * @return string|\NotificationChannels\JetSms\JetSmsMessage */ public function toJetSms($notifiable) { return "Test notification"; // Or return new ShortMessage($notifiable->phone_number, 'Test notification'); } }
Don't forget to place the dedicated method for JetSms inside your notifiables. (e.g. User)
class User extends Authenticatable { use Notifiable; public function routeNotificationForJetSms() { return "905123456789"; } }
Available methods
JetSms can also be used directly to send short messages.
Examples:
JetSms::sendShortMessage($to, $message); JetSms::sendShortMessages([[ 'recipient' => $to, 'message' => $message, ], [ 'recipient' => $anotherTo, 'message' => $anotherMessage, ]]);
see: jet-sms-php documentation for more information.
Available events
JetSms Notification channel comes with handy events which provides the required information about the SMS messages.
- Message Was Sent (
NotificationChannels\JetSms\Events\MessageWasSent
) - Messages Were Sent (
NotificationChannels\JetSms\Events\MessageWasSent
) - Sending Message (
NotificationChannels\JetSms\Events\SendingMessage
) - Sending Messages (
NotificationChannels\JetSms\Events\SendingMessages
)
Example:
namespace App\Listeners; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use NotificationChannels\JetSms\Events\MessageWasSent; class SentMessageHandler { /** * Handle the event. * * @param MessageWasSent $event * @return void */ public function handle(MessageWasSent $event) { $response = $event->response; $message = $event->message; } }
Notes
$response->groupId() will throw BadMethodCallException if the client is set to 'http'. $response->messageReportIdentifiers() will throw BadMethodCallException if the client is set to 'xml'.
change client configuration with caution.
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email erdemkeren@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.