laravel-sms
laravel-sms copied to clipboard
SMS gateway for Laravel using various vendors (SMSGateway.me, Zenziva, etc)
Laravel SMS Gateway
Laravel SMS is a package that has abilities to send and receive SMS via SMS gateway from various vendors such as SMSgateway.me, Zenziva.id, etc.
Table of Contents
Requirements
- PHP 7.0 or above.
- cURL extension for PHP.
- Laravel version 5.4 or above.
Available Vendors
- SMSGateway.me (
smsgatewayme) - Zenziva.id (
zenziva)
Installation Instructions
Install package via Composer by running the command:
composer require yugo/smsgateway -vvv
Publish package assets using the command below:
php artisan vendor:publish
Select package from yugo/smsgateway to automatically copy a config file to your config application directory.
Note: If you are using Laravel version 5.4, you must setup provider manually by adding Yugo\SMSGateway\Providers\SmsServiceProvider::class to your config/app.php file.
App\Providers\AppServiceProvider::class,
App\Providers\AuthServiceProvider::class,
// App\Providers\BroadcastServiceProvider::class,
App\Providers\EventServiceProvider::class,
App\Providers\RouteServiceProvider::class,
Yugo\SMSGateway\Providers\SmsServiceProvider::class,
Then, publish package vendor using command below.
php artisan vendor:publish --provider="Yugo\SMSGateway\Providers\SmsServiceProvider"
SMSGateway.me
To enable and using SMSgateway.me vendor, you must set new configurations based on SMSgateway.me setting. Add two config values like as below.
SMS_VENDOR="smsgatewayme"
SMSGATEWAYME_DEVICE=
SMSGATEWAYME_TOKEN=
Zenziva.id
Login to your Zenziva.id dashboard account to get userkey and passkey value. Add userkey and passkey to .env file using these configurations.
SMS_VENDOR="zenziva"
ZENZIVA_USERKEY=userkey
ZENZIVA_PASSKEY=passkey
Usage
Sending a new message using Laravel SMS is easy. You just import real-time facade from the package and call the available methods inside it.
use Facades\Yugo\SMSGateway\Interfaces\SMS;
Now, you can use class SMS inside your PHP file. Every vendor has send(array $destinations, string $message) method.
Quick example:
SMS::send(['62891111111'], 'Hello, how are you?');
Additional Methods
Some vendors have additional methods. For example, you can check balance when using Zenziva and check device when using SMSGateway.me.
SMSGateway.me
// get registered device information
SMS::device(?int $id); // $id is nullable
// get detailed information from message
SMS::info(int $id);
// cancel queued message
SMS::cancel(array $id);
By default, SMSgateway.me package will using API configuration from .env file (such as device and token). But, you can set device ID and token programmatically via application. For example:
SMS::setDevice(12345) // make sure it's integer value
->setToken('secret-token')
->send(['08111111111'], 'Message with custom device and token.');
Zenziva.id
// get credit balance
SMS::credit();
If you want to set userkey and/or passkey manually, you can using setUser(string $user) and setPassword(string $password) method. For example:
SMS::setUser('you')
->setPassword('secret')
->send(['08111111111'], 'Message with custom user and password.');
License
MIT.
