Nexmo for Laravel 5
Implements a service for Nexmo messaging based on, (*1)
Composer Configuration
Include the artistan nexmo package as a dependency in your composer.json
Packagist:, (*2)
"artistan/nexmo": "0.1.*"
Installation
Once you update your composer configuration, run composer install
to download the dependencies., (*3)
Add a ServiceProvider to your providers array in app/config/app.php
:, (*4)
'providers' => array(
'Artistan\Nexmo\NexmoServiceProvider',
)
Publish the Vendor Config
php artisan vendor:publish --provider="Artistan\Nexmo\NexmoServiceProvider", (*5)
Usage - work in progress
Sending SMS via the Nexmo SMS gateway., (*6)
Quick Examples
1) Sending an SMS, (*7)
$sms = new Artistan\Nexmo\Service\Message\Sms;
OR
$sms = \App::make('nexmosmsmessage');
AND
$result = $sms->sendText('15005554320','15555633637','dude, this is from a laravel package');
OR
$sms = NexmoSmsMessage::sendText('15005554320','15555633637','dude, this is from a laravel package');
2) Recieving SMS, (*8)
// TODO:: setup default routing for this...
$sms = new Artistan\Nexmo\Service\Message\Sms;
OR
$sms = \App::make('nexmosmsmessage');
AND
if ($sms->inboundText()) {
$sms->reply('You said: ' . $sms->text);
}, (*9)
OR
if(NexmoAccount::inboundText()){
NexmoAccount::reply('You said: ' . $sms->text);
}
3) Receiving a message receipt, (*10)
// TODO:: setup default routing for this...
$receipt = new Artistan\Nexmo\Service\Receipt;
OR
$receipt = \App::make('nexmoreceipt');
AND
if ($receipt->exists()) {
switch ($receipt->status) {
case $receipt::STATUS_DELIVERED:
// The message was delivered to the handset!
break;, (*11)
case $receipt::STATUS_FAILED:
case $receipt::STATUS_EXPIRED:
// The message failed to be delivered
break;
}
}
4) List purchased numbers on your account, (*12)
$account = new Artistan\Nexmo\Service\Account;
OR
$account = \App::make('nexmoaccount');
AND
$numbers = $account->numbersList();
OR
$numbers = NexmoAccount::numbersList();
Most Frequent Issues
Sending a message returns false., (*13)
This is usually due to your webserver unable to send a request to
Nexmo. Make sure the following are met:
1) Either CURL is enabled for your PHP installation or the PHP
option 'allow_url_fopen' is set to 1 (default).
2) You have no firewalls blocking access to rest.nexmo.com/sms/json
on port 443.
Your message appears to have been sent but you do not recieve it., (*14)
Run the example.php file included. This will show any errors that
are returned from Nexmo.