Send SMS and Viber message via TurboSMS (turbosms.ua) using this Laravel framework package (Laravel).
Удобный пакет для отправки и проверки SMS и Viber сообщений через сервис TurboSMS.ua
Минимальная версия Laravel 7.0, для более низкой версии нужно использовать guzzle/guzzle
Установите пакет через композер.
composer require daaner/turbosmsЕсли вы НЕ используете autodiscover - добавьте сервис провайдер в конфигурационный файл config/app.php.
Daaner\TurboSMS\TurboSMSServiceProvider::class,Добавьте фасад TurboSMS в массив в config/app.php:
'TurboSMS' => Daaner\TurboSMS\Facades\TurboSMS::class,Выполните публикацию конфига и локализационных файлов командой:
php artisan vendor:publish --provider="Daaner\TurboSMS\TurboSMSServiceProvider"После публикации ресурсов поправьте файл config/turbosms.php и заполните .env новыми полями.
- Создайте аккаунт на сайте turbosms.ua
- Скопируйте
HTTP APIв настройках шлюза и добавьте в соответствующий параметр вconfig/turbosms.php
NOTE
На странице настройки шлюза обязательно нужно получить токен API и включить галочку HTTP API
setApi($apiKey)-stringуказываем API ключ, отличный от значения в конфиге
TurboSMS::setApi('MY_TURBOSMS_API_KEY_2');setSMSSender($smsSender)-stringуказываем отправителя SMS, отличного от значения в конфиге
TurboSMS::setSMSSender('TAXI');setViberSender($viberSender)-stringуказываем отправителя Viber, отличного от значения в конфиге
TurboSMS::setViberSender('Mobibon2');setStartTime($startTime)-carbon|stringдата и время отправки сообщения. В конфиге задается режим сна и промежуток времени. В режиме сна, сообщения будут откладываться
TurboSMS::setStartTime('2020-10-10 08:22');
//or
TurboSMS::setStartTime(Carbon\Carbon::now()->addMinutes(5));Настройки для отправки через Viber или для гибридной отправки (Более детально)
setViberText($viberReplaceText)-stringзамена текста в Вайбер при гибридных отправках (заменяет текст и при простых отправках в Viber)
TurboSMS::setViberText('Этот текст будет получен только в Viber');setTTL($ttl)-intсрок жизни сообщения (60 - 86400)
TurboSMS::setTTL(86400);setImageURL($image)-stringполный URL адрес изображения, которое будет отображено в сообщении
TurboSMS::setImageURL('http://lorempixel.com/400/400/');setCaption($caption)-stringтекст на кнопке в сообщении
TurboSMS::setCaption('Открыть сайт');setAction($action)-stringURL адрес, куда перейдёт получатель сообщения при нажатии на кнопку
TurboSMS::setAction('https://www.google.com');setCountClicks($countClicks)-string|intФлаг статистики переходов (1 - да, остальное - нет)
TurboSMS::setCountClicks(1);setTransactional($isTransactional)-string|intФлаг транзакционного сообщения (1 - да, остальное - нет)
TurboSMS::setTransactional(1);$balance = TurboSMS::getBalance();
//or
TurboSMS::setApi('MY_TURBOSMS_API_KEY_2');
$balance = TurboSMS::getBalance($otherApiKey);
dd($balance);
//100500.22 or null$balance = TurboSMS::getBalanceJson();
//or
TurboSMS::setApi('MY_TURBOSMS_API_KEY_2');
$balance = TurboSMS::getBalanceJson($otherApiKey);
dd($balance);$status = TurboSMS::getItemsStatus($messageId);
//or
$arr = collect();
$arr->push('FIRST_MESSAGE_ID');
$arr->push('SECOND_MESSAGE_ID');
$arr->push('XXX_MESSAGE_ID');
$status = TurboSMS::getItemsStatus($arr);
dd($status);[
"success" => true
"result" => [
0 => [
"message_id" => "c91a1593-****-0cd0-****-a41c8a9a22c1"
"response_code" => 0
"recipient" => "*****"
"sent" => "2020-01-01 00:00:01"
"updated" => "2020-01-01 00:00:02"
"status" => "Delivered"
"type" => "sms"
"response_status" => "OK"
],
1 => [
"message_id" => "c91a1593-****-0cd0-****-a41c8a9a22c2"
"response_code" => 414
"response_status" => "NOT_ALLOWED_MESSAGE_ID"
]
...
]
"info" => "Запрос обработан успешно"
]
TurboSMS::sendMessages($array_or_one_phone, $text, enum['sms' || null, 'viber', 'both'])
$sended = TurboSMS::sendMessages('+38(066) 777-88-99', 'Отправляем SMS');
$sended = TurboSMS::sendMessages('+38(066) 777-88-99', 'Отправляем SMS', 'sms');
// or
$sended = TurboSMS::sendMessages('+38(066) 777-88-99', 'Отправляем Viber', 'viber');
$sended = TurboSMS::sendMessages('+38(066) 777-88-99', 'Гибридная отправка. Сразу в Viber, при ошибке - SMS', 'both');TurboSMS::getResponse($url, $body)
$url = 'https://api.turbosms.ua/NEW_MODULE/NEW_METHOD';
$body = [
...
];
TurboSMS::setApi('MY_TURBOSMS_API_KEY_2');
$custom = TurboSMS::getResponse($url, $body);use TurboSMS;
...
//простая отправка
$sms = TurboSMS::sendMessages('380667778899', 'TurboSMS приветствует Вас!');
$viber = TurboSMS::sendMessages('380667778899', 'TurboSMS приветствует Вас!', 'viber');
//отправка с параметрами
//если сообщение будет получено в Вайбере, SMS отправки не произойдет
//если Вайбер на номере не доступен - будет отправлена только SMS
$ph = collect(); //массив номеров телефонов
$ph->push('+38(066) 666-55-44'); //валидный номер
$ph->push('+38 (099)a999-88-77 '); //валидный номер
$ph->push(' телефон правильный, отправится даже с этим текстом: +38-099-11122-33 '); //валидный номер
$ph->push('телефон с ошибкой (без кода страны): 099-111-22-33'); //невалидный номер
$ph->push('лишние цифры после номера: 38-099-333-44-33 добавочный 5'); //невалидный номер
$ph->push('лишние цифры до номера: 55 улица, 38-099-333-44-33'); //невалидный номер
TurboSMS::setViberSender('Mobibon');
TurboSMS::setSMSSender('TAXI');
TurboSMS::setTTL(86400);
TurboSMS::setImageURL('http://lorempixel.com/400/400/');
TurboSMS::setCaption('Открыть сайт с котиками');
TurboSMS::setAction('https://www.google.com');
TurboSMS::setCountClicks(1);
TurboSMS::setTransactional(1);
TurboSMS::setStartTime('lalala'); //проигнорируется
TurboSMS::setStartTime('2020-10-10 08:22'); //установит дату и время отправки, если она больше текущей
TurboSMS::setViberText('Этот текст будет получен только в Viber');
$sended = TurboSMS::sendMessages($ph, 'Привет в SMS. В Вайбере не отправится', 'both');Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.
