ol-zamovshafu / devinotelecom-laravel
Sends SMS using Devinotelecom API
Requires
- php: >=5.6.4
- illuminate/notifications: ^5.7
- illuminate/queue: ^5.7
- illuminate/support: ^5.7
- ol-zamovshafu/devinotelecom-php: ^1.3
Requires (Dev)
- mockery/mockery: ^0.9.5
- phpunit/phpunit: >=6.5
This package is not auto-updated.
Last update: 2025-04-14 23:50:52 UTC
README
This package makes it easy to send notifications using Devinotelecom with Laravel 5.7.
Contents
Installation
You can install this package via composer:
composer require ol-zamovshafu/devinotelecom-laravel
Next add the service provider to your config/app.php
:
/* * Package Service Providers... */ NotificationChannels\Devinotelecom\DevinotelecomSmsServiceProvider::class,
Register the DevinotelecomSms alias to your application. This registration is not optional because the channel itself uses this very alias.
'DevinotelecomSms' => NotificationChannels\Devinotelecom\DevinotelecomSms::class,
Setting up the DevinotelecomSms service
Add your desired client, login, password, originator (outbox name, sender name) and request timeout
configuration to your config/services.php
file:
... 'DevinotelecomSms' => [ 'client' => 'http', 'http' => [ 'endpoint' => 'https://integrationapi.net/rest/', ], 'login' => '', 'password' => '', 'originator' => '', // Sender name. 'timeout' => 60, ], ...
Usage
Now you can use the channel in your via() method inside the notification:
use NotificationChannels\Devinotelecom\DevinotelecomSmsChannel; use Zamovshafu\Devinotelecom\ShortMessage; class ResetPasswordWasRequested extends Notification { /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { return [DevinotelecomSmsChannel::class]; } /** * Get the DevinotelecomSms representation of the notification. * * @param mixed $notifiable * @return string|\Zamovshafu\Devinotelecom\ShortMessage */ public function toDevinotelecomSms($notifiable) { return "Test notification"; // Or return new ShortMessage($notifiable->phone_number, 'Test notification'); } }
Don't forget to place the dedicated method for DevinotelecomSms inside your notifiables. (e.g. User)
class User extends Authenticatable { use Notifiable; public function routeNotificationForDevinotelecomSms() { return "905123456789"; } }
Available methods
DevinotelecomSms can also be used directly to send short messages.
Examples:
DevinotelecomSms::sendShortMessage($to, $message);
see: devinotelecom-php documentation for more information.
Available events
DevinotelecomSms Notification channel comes with handy events which provides the required information about the SMS messages.
- Message Was Sent (
NotificationChannels\Devinotelecom\Events\MessageWasSent
) - Sending Message (
NotificationChannels\Devinotelecom\Events\SendingMessage
)
Example:
namespace App\Listeners; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Contracts\Queue\ShouldQueue; use NotificationChannels\Devinotelecom\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'.
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 oleg.lobanov@zamovshafu.com.ua instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
License
Copyright (c) Hilmi Erdem KEREN erdemkeren@gmail.com
The MIT License (MIT). Please see License File for more information.