numesia/all-my-sms

AllMySms Notifications driver

1.3.0 2024-07-29 13:22 UTC

This package is auto-updated.

Last update: 2024-10-29 14:05:25 UTC


README

Latest Version on Packagist Software License Build Status StyleCI Quality Score Code Coverage Total Downloads

This package makes it easy to send notifications using AllMySms with Laravel 5.5+, 6.x, 7.x, 8.x and 9.x.

Contents

Installation

You can install the package via composer:

composer require laravel-notification-channels/all-my-sms

Setting up the AllMySms service

Add the following code to you config/services.php:

// config/services.php
...
'all_my_sms' => [
    'uri' => env('ALL_MY_SMS_URI', 'https://api.allmysms.com/http/9.0'),
    'login' => env('ALL_MY_SMS_LOGIN'),
    'api_key' => env('ALL_MY_SMS_API_KEY'),
    'format' => env('ALL_MY_SMS_FORMAT', 'json'),
    'sender' => env('ALL_MY_SMS_SENDER'),
    'universal_to' => env('ALL_MY_SMS_UNIVERSAL_TO'),
],
...

Usage

Now you can use the channel in your via() method inside the notification:

use NotificationChannels\AllMySms\AllMySmsChannel;
use NotificationChannels\AllMySms\AllMySmsMessage;
use Illuminate\Notifications\Notification;

class ProjectCreated extends Notification
{
    public function via($notifiable)
    {
        return [AllMySmsChannel::class]; // or 'all_my_sms'
    }

    public function toAllMySms($notifiable)
    {
        return new AllMySmsMessage('Content');
    }
}

In order to let your Notification know which phone number to use, add the routeNotificationForAllMySms method to your Notifiable model.

This method needs to return a phone number.

public function routeNotificationForAllMySms(Notification $notification)
{
    return $this->phone_number;
}

Local development

When developing an application that sends sms, you probably don't want to actually send sms to live phone numbers. You may set a universal recipient of all sms sent. This can be done by the ALL_MY_SMS_UNIVERSAL_TO environment variable or the universal_to option.

Available Message methods

  • content(string $content): Accepts a string value for the sms content.
  • sender(string $sender): Accepts a string value for the sender name.
  • campaign(string $campaign): Accepts a string value for the sms campaign name.
  • sendAt(\DateTimeInterface|string $sendAt): Accepts a DateTimeInterface or string for the sms due date.
  • parameters(array $parameters): Accepts an array for the sms parameters.

Changelog

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Security

If you discover any security related issues, please email mikael.popowicz@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.