lakshmajim/twilio
Laravel - Twilio
INDEX
| Index | Description |
|---|---|
| What it is | - Introduction |
| Installation | - Installing Twilio package |
| Laravel Integration | - Integrating this package with Laravel application |
| Docs | - Description of methods available and parameters etc Method Responses |
| Miscellaneous | - Miscellaneous content regarding method calls |
| Invalid method calls | - Invalid arguments (Not supported) |
| Sending SMS | - A simple Examp to illustarte the using this package |
| Example with Laravel | - Sample code in Laravel |
| Exception Handling | - An Exception Handling mechanism to catch errors |
| Twilio | - How to Get registered on Twilio to use free trail account |
| License | - License |
##WHAT IT IS?
- This package is used to send sms to any mobile number.
- This uses Twilio API.
- It requires AccountSID and AuthToken, they can be generated by registrting @at Twilio
- after registration click on Account ,there you will be able to see authsid and authtoken.
- You have assigned a sender mobile number which can be found at Twilio,which is used to send Text Messages or MMS and ShortCodes etc.
##INSTALLATION
- Download package form https://github.com/lakshmaji/twilio .
- OR YOU CAN RUN FOLLOWING COMMAND FROM TERMINAL
- With composer you can run this line composer require lakshmaji/twilio
Run this command from the Terminal:
composer require lakshmaji/twilio
composer dumpautoload
composer update
##LARAVEL INTEGRATION
you need to add the service provider. Open app/config/app.php, and add a new item to the providers array.
Lakshmaji\Twilio\TwilioServiceProvider::class,
Then, add a Facade for more convenient usage. In app/config/app.php add the following line to the aliases array:
'Twilio' => Lakshmaji\Twilio\Facade\Twilio::class,
Again do composer update
METHOD, AVAILABLE PARAMETERS AND RESPONSES
#####Method
message(array, string, boolean, boolean, boolean)
$message_array = array(
'sender_id' => 'TWILIO_AUTH_SID',
'sender_secret' => 'TWILIO_AUTH_SECRET',
'reciver_mobile' => 'MOBILE_NUMBER',
'media_url' => 'MEDIA_URL',
'otp' =>'OTP',
'sender' => 'TWILIO_SOURCE_NUMBER'
);
The message_array parameters
| PARAMETER | DESCRIPTION |
|---|---|
| sender_id | This is the key defined in ".env" file for auth_sid |
| sender_secret | This is the key defined in ".env" file for auth_secret |
| sender | This is the key defined in .env file for sender mobile number |
| reciver_mobile | This is the receivers mobile number |
| media_url | This is the "uri" for mutimedia |
| otp | This key values associates with the otp |
Responses
| CODE | DESCRIPTION |
|---|---|
| 16000 | Error due to all flags are set to false or no flag was set |
| 16001 | Error due to all flags were set to true |
| 16002 | No sms type was set witin the avialbel list of flag parameters |
| 16003 | Un handled error |
##MISCELLANEOUS
#####To send SMS
Twilio::message($message_array,$op="only msg", true, false, false ); // sms
#####To send MMS
Twilio::message($message_array,$op="only MMS", false, false, true ); // media
#####To send OTP
Twilio::message($message_array,$op="only verfication code", false, true, false ); // otp
#####To send both SMS and MMS
Twilio::message($message_array,$op="This is combaination both SMS and MMS", true, false, true ); // sms , media
#####INVALID METHOD CALLS
Twilio::message($message_array,$op="All set to true sms,mms,otp", true, true, true ); // sms , otp , media
Twilio::message($message_array,$op="all set to false", false, false, false ); // none defined
Twilio::message($message_array,$op="all considered to be false"); // none defined
Twilio::message($message_array);
##SENDING SMS
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Twilio;
/**
* Twilio - Package usage Example
*
* @access public
* @since 1.2.0
* @author lakshmaji
*/
class TwilioTest extends Controller
{
public function testMesssage()
{
// initialize message array
$message_array = array(
'sender_id' => 'TWILIO_AUTH_ID',
'sender_secret' => 'TWILIO_AUTH_SECRET',
'reciver_mobile' => '999999999',
'media_url' => 'http://goo.gl/F9igRq',
'otp' =>'325565',
'sender' => 'TWILIO_SOURCE_NUMBER'
);
// This will send message only
$sms_response = Twilio::message($message_array,$op="only msg", true, false, false );
return response()->json($sms_response,200);
}
}
// end of class TwilioTest
// end of file TwilioTest.php
##Example code for Laravel along with sample .env file
.env file
APP_ENV=local
APP_DEBUG=true
APP_KEY=BPfhzoGJ7RJB8D3qoyP6KZ2MjX2MAzcN
DB_HOST=127.0.0.1
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
TWILIO_SOURCE_MOBILE_NUMBER=+44778338721
TWILIO_USER_ID=ACef0d5a519rwetbf821ea07c2fdbfd8204e
TWILIO_USER_PASSWORD=a0fb23srfdsf4825cbb9501df25b906a74
The code to use above ".env" file is given below
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Twilio;
/**
* Twilio - Package usage Example
*
* @access public
* @since 1.2.0
* @author lakshmaji
*/
class TwilioTest extends Controller
{
public function testMesssage()
{
// initialize message array
$message_array = array(
'sender_id' => 'TWILIO_USER_ID',
'sender_secret' => 'TWILIO_USER_PASSWORD',
'reciver_mobile' => '99999999999',
'media_url' => 'http://goo.gl/F9igRq',
'otp' =>'325456',
'sender' => 'TWILIO_SOURCE_MOBILE_NUMBER'
);
// This will send OTP only
$sms_response = Twilio::message($message_array,$op="otp only", false, true, false ); // otp
return response()->json($sms_response,200);
}
}
// end of class TwilioTest
// end of file TwilioTest.php
Handling Exceptions
<?php
namespace App\Exceptions;
use Exception;
use Lakshmaji\Twilio\Exception\TwilioException;
/**
* Twilio - A Simple Exception handler class to Catch
* Exceptions thrown by TwilioException class
*
* @author lakshmaji
*/
class Handler extends ExceptionHandler
{
//....
//.................
//....
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $e
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $e)
{
if($e instanceof TwilioException)
{
return response()->json(array('message'=>$e->getMessage(),'status' =>$e->getStatusCode()),500);
}
return parent::render($request, $e);
}
}
In laravel we can easily handle the errors by using Handler.php (You can use custom Exception Handlr too)
TWILIO TRAIL ACCOUNT USAGE:
- If You are trying to implement SMS functionality with Twilio the you need to verify the list of destination mobile numbers at Twilio

- Before sending MESSAGE make sure that you have enabled GEO-PERMISSIONS at Twilio

##Licence
@ MUTYALA ANANTHA LAKSHMAJI
Related Packages
With Death by Captcha you can solve any CAPTCHA. All you need to do is implement...
Parses composer.lock and returns informations about the used packages
Version History
| Version | Released | PHP | License |
|---|---|---|---|
| v1.2.3 | >=5.3.0 | MIT | |
| v1.2.2 | >=5.3.0 | MIT | |
| v1.2.1 | >=5.3.0 | MIT | |
| v1.2.0 | >=5.3.0 | MIT | |
| v1.0.3 | >=5.3.0 | MIT | |
| v1.0.2 | >=5.3.0 | MIT | |
| v1.0.1 | >=5.3.0 | MIT | |
| v1.0.0 | >=5.3.0 | MIT |