2017 © Pedro Peláez
 

library jet-sms

Sends SMS using JetSms API

image

laravel-notification-channels/jet-sms

Sends SMS using JetSms API

  • Thursday, March 1, 2018
  • by erdemkeren
  • Repository
  • 4 Watchers
  • 7 Stars
  • 137 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 7 Versions
  • 7 % Grown

The README.md

JetSms Notification Channel For Laravel 5.3+

Latest Version on Packagist Software License Build Status StyleCI Quality Score Code Coverage Total Downloads, (*1)

This package makes it easy to send notifications using JetSms with Laravel 5.5+, 6.x and 7.x., (*2)

Contents

Installation

You can install this package via composer:, (*3)

``` bash composer require laravel-notification-channels/jet-sms, (*4)


### 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: ```php ... '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:, (*5)

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), (*6)

class User extends Authenticatable
{
    use Notifiable;

    public function routeNotificationForJetSms()
    {
        return "905123456789";
    }
}

Available methods

JetSms can also be used directly to send short messages., (*7)

Examples:, (*8)

JetSms::sendShortMessage($to, $message);
JetSms::sendShortMessages([[
    'recipient' => $to,
    'message'   => $message,
], [
    'recipient' => $anotherTo,
    'message'   => $anotherMessage,
]]);

see: jet-sms-php documentation for more information., (*9)

Available events

JetSms Notification channel comes with handy events which provides the required information about the SMS messages., (*10)

  1. Message Was Sent (NotificationChannels\JetSms\Events\MessageWasSent)
  2. Messages Were Sent (NotificationChannels\JetSms\Events\MessageWasSent)
  3. Sending Message (NotificationChannels\JetSms\Events\SendingMessage)
  4. Sending Messages (NotificationChannels\JetSms\Events\SendingMessages)

Example:, (*11)

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'., (*12)

change client configuration with caution., (*13)

Changelog

Please see CHANGELOG for more information what has changed recently., (*14)

Testing

bash $ composer test, (*15)

Security

If you discover any security related issues, please email erdemkeren@gmail.com instead of using the issue tracker., (*16)

Contributing

Please see CONTRIBUTING for details., (*17)

Credits

License

The MIT License (MIT). Please see License File for more information., (*18)

The Versions