TIP
Looking for an SMS provider? Check out CompareSMS (opens new window) and find the best SMS provider for you
# AfricasTalking notification channel for Laravel
(opens new window) (opens new window) (opens new window) (opens new window) (opens new window)
This package makes it easy to send notifications using AfricasTalking (opens new window) with Laravel.
# Contents
- About
- Installation
- Setting up the AfricasTalking service
- Usage
- Testing
- Security
- Contributing
- Credits
- License
# About
This package is part of the Laravel Notification Channels (opens new window) project. It provides additional Laravel Notification channels to the ones given by Laravel (opens new window) itself.
The AfricasTalking channel makes it possible to send out Laravel notifications as a SMS
using AfricasTalking API.
# Installation
You can install this package via composer:
composer require laravel-notification-channels/africastalking
The service provider gets loaded automatically.
# Setting up the AfricasTalking service
You will need to Register (opens new window) and then go to your sandbox app Go To SandBox App (opens new window). Click on settings (opens new window) Within this page, you will generate your Username and key
. Place them inside your .env
file. Remember to add your Sender ID that you will be using to send the messages.
Please note if you do not have a VALID sender_ID remove "AT_FROM" from your .env or leave it as ""
AT_USERNAME=""
AT_KEY=""
AT_FROM="" // please note if you do not have a valid sender_ID remove this or leave it as ""
To load them, add this to your config/services.php
. This will load the AfricasTalking data from the .env
file.file:
'africastalking' => [
'username' => env('AT_USERNAME'),
'key' => env('AT_KEY'),
'from' => env('AT_FROM'),
]
Add the routeNotifcationForAfricasTalking
method on your notifiable Model. If this is not added,
the phone_number
field will be automatically used.
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* Route notifications for the Africas Talking channel.
*
* @param \Illuminate\Notifications\Notification $notification
* @return string
*/
public function routeNotificationForAfricasTalking($notification)
{
return $this->phone_number;
}
}
# Usage
To use this package, you need to create a notification class, like NewsWasPublished
from the example below, in your Laravel application. Make sure to check out Laravel's documentation (opens new window) for this process.
<?php
use NotificationChannels\AfricasTalking\AfricasTalkingChannel;
use NotificationChannels\AfricasTalking\AfricasTalkingMessage;
class NewsWasPublished extends Notification
{
/**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return [AfricasTalkingChannel::class];
}
public function toAfricasTalking($notifiable)
{
return (new AfricasTalkingMessage())
->content('Your SMS message content');
}
}
You can also modify who the notification(SMS) is sent from, this will override the AT_FROM= in your .env Please only do this if you have a VALID sender_ID
return (new AfricasTalkingMessage())
->content("Your SMS message content")
->from("set any sender id/name here");
You can also modify who the notification(SMS) is sent to (the recipient)
return (new AfricasTalkingMessage())
->content("Your SMS message content")
->to("put the recipient phone number here"); //eg ->to(1111111111)
It's important to know the Order in which the recipient phone number the notification(SMS) will be sent to will be used
If you have defined the routeNotificationForAfricasTalking() method on the Notifiable class (User.php in this case) and returned a valid phone number, then that will be used.
if you did not define routeNotificationForAfricasTalking() method on the Notifiable class (User.php in this case), then the phone_number attribute of the User will be used ($user->phone_number)
Lastly if the recipient phone number is set using ->to(1111111), this will override the phone number provided in either 1 or 2.
return (new AfricasTalkingMessage())
->content("Your SMS message content")
->to("put the recipient phone number here"); //eg ->to(11111111)
# Testing
$ composer test
# Security
If you discover any security-related issues, please email osaigbovoemmanuel1@gmail.com instead of using the issue tracker.
# Contributing
Please see CONTRIBUTING (opens new window) for details.
# Credits
- Osaigbovo Emmanuel (opens new window)
- Osen Concepts (opens new window)
- All Contributors (opens new window)
# License
The MIT License (MIT). Please see License File (opens new window) for more information.
# How do I say Thank you?
Please buy me a cup of coffee https://www.paypal.com/paypalme/osaigbovoemmanuel , Leave a star and follow me on Twitter (opens new window) .