This package makes it easy to send notifications using Netgsm with Laravel 5.3.
You can install this package via composer:
composer require bahricanli/Netgsm
Next add the service provider to your config/app.php
:
/*
* Package Service Providers...
*/
NotificationChannels\Netgsm\NetgsmServiceProvider::class,
Register the Netgsm alias to your application. This registration is not optional because the channel itself uses this very alias.
'Netgsm' => NotificationChannels\Netgsm\Netgsm::class,
Add your desired client, username, password, originator (outbox name, sender name) and request timeout
configuration to your config/services.php
file:
...
'Netgsm' => [
'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,
],
...
Now you can use the channel in your via() method inside the notification:
use NotificationChannels\Netgsm\NetgsmChannel;
use NotificationChannels\Netgsm\NetgsmMessage;
class ResetPasswordWasRequested extends Notification
{
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return [NetgsmChannel::class];
}
/**
* Get the Netgsm representation of the notification.
*
* @param mixed $notifiable
* @return string|\NotificationChannels\Netgsm\NetgsmMessage
*/
public function toNetgsm($notifiable) {
return "Test notification";
// Or
return new ShortMessage($notifiable->phone_number, 'Test notification');
}
}
Don't forget to place the dedicated method for Netgsm inside your notifiables. (e.g. User)
class User extends Authenticatable
{
use Notifiable;
public function routeNotificationForNetgsm()
{
return "905123456789";
}
}
Netgsm can also be used directly to send short messages.
Examples:
Netgsm::sendShortMessage($to, $message);
Netgsm::sendShortMessages([[
'recipient' => $to,
'message' => $message,
], [
'recipient' => $anotherTo,
'message' => $anotherMessage,
]]);
see: Netgsm-php documentation for more information.
Netgsm Notification channel comes with handy events which provides the required information about the SMS messages.
- Message Was Sent (
NotificationChannels\Netgsm\Events\MessageWasSent
) - Messages Were Sent (
NotificationChannels\Netgsm\Events\MessageWasSent
) - Sending Message (
NotificationChannels\Netgsm\Events\SendingMessage
) - Sending Messages (
NotificationChannels\Netgsm\Events\SendingMessages
)
Example:
namespace App\Listeners;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;
use NotificationChannels\Netgsm\Events\MessageWasSent;
class SentMessageHandler
{
/**
* Handle the event.
*
* @param MessageWasSent $event
* @return void
*/
public function handle(MessageWasSent $event)
{
$response = $event->response;
$message = $event->message;
}
}
$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.
Please see CHANGELOG for more information what has changed recently.
$ composer test
If you discover any security related issues, please email bahri@bahri.info instead of using the issue tracker.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.