Package Data | |
---|---|
Maintainer Username: | MarceauKa |
Maintainer Contact: | marceau@casals.fr (MarceauKa) |
Package Create Date: | 2016-08-18 |
Package Last Update: | 2017-02-16 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-12-17 03:04:42 |
Package Statistics | |
---|---|
Total Downloads: | 799 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 7 |
Total Watchers: | 5 |
Total Forks: | 3 |
Total Open Issues: | 1 |
This is an unofficial integration of the php-ovh-sms library for Laravel 5.
Require this package with composer:
composer require akibatech/laravel-ovh-sms
After updating composer, add the ServiceProvider to the providers array in config/app.php:
Akibatech\Ovhsms\ServiceProvider::class,
If you want to use the Facade for rapid message sending, you can add this line to your config/app.php in the aliases section:
'Ovhsms' => Akibatech\Ovhsms\Facade::class,
Then, you should publish the laravel-ovh-sms to your config folder with the following command.
php artisan vendor:publish --provider="Akibatech\Ovhsms\ServiceProvider"
Send a message (using Facade) anywhere in your app:
Ovhsms::sendMessage('+33611223344', 'Hello!');
Send a message in a controller using DI:
public function myControllerAction(Akibatech\Ovhsms\OvhSms $client)
{
$client->sendMessage('+33611223344', 'Hello!');
}
This package give you an access to a ready to use Ovh\Sms\SmsApi instance with your configured credentials and your default sms account (if present).
It also offer some helpers over the original Api.
$client = app('ovhsms');
// Prepare a new SMS instance and return it.
$sms = $client->newMessage('the phone number');
$sms->send('Hi!');
// Same as above but the SMS is marked as a marketing message.
$sms = $client->newMarketingMessage($phone); // Alias of newMessage($phone, true);
$sms->send('Hello!');
// Attach many receivers
$sms = $client->newMessage(['phone1', 'phone2'], ...);
$sms->send('Hi guys!');
// Send directly the message
$client->sendMessage($phone, 'Hello!');
// Or
$client->sendMarketingMessage($phone, 'Super price this sunday!');
If you don't want to use ready-to-use helpers, you can follow the original workflow. Here's an example:
// Retrieve OVH SMS instance
$ovhsms = app('ovhsms'); // Or Ovhsms::getClient();
// Get available SMS accounts
$accounts = $ovhsms->getAccounts();
// Set the account you will use
$ovhsms->setAccount($accounts[0]);
// Create a new message that will allow the recipient to answer (to FR receipients only)
$sms = $ovh->createMessage(true);
$sms->addReceiver("+33601020304");
$sms->setIsMarketing(false);
// Plan to send it in the future
$sms->setDeliveryDate(new DateTime("2018-02-25 18:40:00"));
$sms->send("Hello world!");
This package can be used as a driver for Laravel Notifications (Laravel >= 5.3).
Here's a simple notification example.
namespace App\Notifications;
use Akibatech\Ovhsms\Notifications\OvhSmsChannel;
use Akibatech\Ovhsms\Notifications\OvhSmsMessage;
use Illuminate\Notifications\Notification;
class ExampleNotification extends Notification
{
/**
* Notification via OvhSmsChannel.
*/
public function via($notifiable)
{
return [OvhSmsChannel::class];
}
/**
* Your notification must implements "toOvh()"
*/
public function toOvh($notifiable)
{
return (new OvhSmsMessage('A new invoice was paid! Amount: $9.00'));
}
}
Also, your Notifiable model must implements routeNotificationForOvh().
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* Returns the user's phone number.
*/
public function routeNotificationForOvh()
{
return $this->phone; // Ex: +33611223344
}
}
Nice, you're ready to use the new Laravel Notifications system.
You can get your credentials from the official API Explorer site at OVH.
Once your credentials in hands, you need to put them in config/laravel-ovh-sms.php.
For convenience, you can put them in your .env file.
Config keys are:
Optional keys:
Issues related to ovh/php-ovh-sms should be posted on its own repo.
For this Laravel package, feel free to post your issues in the issues section.
MIT