manzadey / stream-telecom
PHP Package for stream-telecom.ru
Fund package maintenance!
Open Collective
Installs: 2 529
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: ^7.1.3|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.3 || ^7.0.1
Requires (Dev)
- phpunit/phpunit: ^7.5
- symfony/var-dumper: ^5.0
README
Данный пакет разработан на основе API stream-telecom.ru (https://stream-telecom.ru/solutions/integrations/).
В данном пакете реализованы следующие методы:
- Просмотр баланса;
- Выгрузка тарифов;
- Выгрузка статистики;
- HLR-запросы;
- Отправка СМС;
- Отправка сообщений в Viber;
- Отправка уведомлений в VK;
- Отправка Email;
Установка
composer require manzadey/stream-telecom
Начало работы
use Manzadey\StreamTelecom\StreamTelecom; $st = new StreamTelecom('name', 'login', 'password');
Просмотр баланса
echo $st->balance();
Выгрузка тарифов
echo $st->tariffs();
Стоимость конкретных запросов
echo $st->tariffs()->hlr(); echo $st->tariffs()->email(); echo $st->tariffs()->messenger();
Выгрузка статистики
$st->statistic()->start('02.02.2020 10:00')->end('03.03.2020 10:00')->get();
Для выгрузки детальной статистики необходимо указать метод detail()
;
$st->statistic()->start('02.02.2020 10:00')->end('03.03.2020 10:00')->detail()->get();
В ответ придёт ID отчёта.
Необязательные методы для детальной статистики:
state()
- Формирование статистики по определенному статусу сообщений. Допустимые значения deliver, not_deliver, expired, sent (доставлено, не доставлено, просрочено, в процессе).
phone()
- Формирование статистики по определенному номеру абонента.
cBase()
- Указывает на необходимость выгрузки данных с привязкой к базе адресатов.
subStat()
- Указывает на необходимость выгрузки данных с подлогинов.
typeLoad()
- Выбор формата отчета. Допустимые значения: 0, 1 (0 -csv по умолчанию, 1 -xls)
$st->statistic() ->start('02.02.2020 10:00') ->end('03.03.2020 10:00') ->detail() ->state('not_deliver') ->phone(79111234567) ->cBase() ->subStat() ->typeLoad(1) ->get();
HLR
Отправка HLR-запроса
$st->hlr()->phone(7912345678)->get(); // 123456789101213
Получение статуса HLR-запроса
$st->hlr()->status(123456789101213);
СМС
Отправка СМС-сообщения
$st->sms()->send() ->text('text message') ->to(['+79123456789', 79123456789, '+7(912)-345-67-89']) ->get();
Отправка сообщений нескольким адресатам с разным текстом.
$phones_array = [ '+79123456789', 79123456789, '+7(912)-345-67-89', ]; $phones_array2 = [79987654321]; $st->sms()->send() ->validity(10) ->package(static function ($s) use ($phones_array) { return $s->text('test')->to($phones_array); }) ->package(static function ($s) use ($phones_array2) { return $s->text('test2')->to($phones_array2); }) ->get();
Получение статуса СМС сообщения
$st->sms()->status(14561456165332)->get();
Получение входящих СМС сообщений
$st->sms()->incoming()->start('29.01.2020 13:00')->end('30.01.2020 13:00')->get();
Установка соединения
$st->setup()->email('password_from_pa');
Работа с базами
Получение списка баз
$st->email()->list()->method('get') ->listId(123) ->get();
Добавление адресной базы
$st->email()->list()->method('add') ->name('TestBase') ->abuseEmail('usermail@mail.com') ->abuseName('OwnerName') ->company('CompanyName') ->address('MyAddress') ->city('Spb') ->zip(190000) ->county('Russia') ->url('mysite.com') ->phone(79999999999) ->get();
Обновление контактной информации адресной базы
$st->email()->list()->method('update') ->listId(123) ->name('TestBase') ->abuseEmail('usermail@mail.com') ->abuseName('OwnerName') ->company('CompanyName') ->address('MyAddress') ->city('Spb') ->zip(190000) ->county('Russia') ->url('mysite.com') ->phone(79999999999) ->get();
Удаление адресной базы
$st->email()->list()->method('delete') ->listId(123) ->get();
Получение списка подписчиков с возможностью фильтрации и регулировки выдачи
$st->email()->list()->method('get_members') ->listId(123) ->state('active') ->limit(1) ->get();
Импортирование подписчиков из файла
$st->email()->list()->method('upload') ->listId(123) ->file('http://www.mysite.ru/files/file.csv') ->type('csv') ->get();
Добавление одного подписчика в базу
$st->email()->list()->method('add_member') ->listId(123) ->email('testuser@mail.com') ->merge(1, 'Иван') ->merge(2, 'Иванов') ->merge(3, '1985-11-23') ->gender('m') ->get();
Редактирование данных подписчика
$st->email()->list()->method('update_member') ->memberId(123) ->merge(1, 'Иван') ->merge(2, 'Иванов') ->merge(3, '1985-11-23') ->gender('m') ->get();
Удаление подписчика из базы
$st->email()->list()->method('delete_member') ->memberId(123) ->get();
Отписка подписчика из базы
$st->email()->list()->method('unsubscribe_member') ->memberId(123) ->listId(123) ->email('testuser@mail.com') ->reason('Отписка по заявке') ->get();
Viber
Установка соединения
$st->setup()->viber('sourceAddressIM');
Отправка сообщения: только текст
$st->viber() ->text('Привет вайбер') ->to(79211234567) ->validity(7200) ->get();
Отправка сообщения: только картинка
$st->viber() ->image('https://my.site.com/images/image.jpg') ->to(79211234567) ->validity(7200) ->get();
Отправка сообщения: с кнопкой, картинкой и текстом
$st->viber() ->text('Привет вайбер') ->image('https://my.site.com/images/image.jpg') ->buttonText('Нажми на кнопку ') ->buttonUrl('stream-telecom.ru') ->to(79211234567) ->validity(7200) ->get();
Отправка сообщения: с кнопкой, картинкой и текстом, с методом каскад
$st->viber() ->text('Привет вайбер') ->cascade('Текст резервного сообщения по sms') ->image('https://my.site.com/images/image.jpg') ->buttonText('Нажми на кнопку ') ->buttonUrl('stream-telecom.ru') ->to(79211234567) ->validity(7200) ->get();
Пакетная отправка
$st->viber() ->package(static function ($v) { return $v->text('Привет вайбер')->to(79211234567)->validity(7200); }) ->package(static function ($v) { return $v->image('https://my.site.com/images/image.jpg')->to(79211234567)->validity(7200); }) ->package(static function ($v) { return $v->text('Привет вайбер')->image('https://my.site.com/images/image.jpg')->buttonText('Нажми на кнопку ')->buttonUrl('stream-telecom.ru')->to(79211234567)->validity(7200); }) ->package(static function ($v) { return $v->text('Привет вайбер')->sms('Текст резервного сообщения по sms')->image('https://my.site.com/images/image.jpg')->buttonText('Нажми на кнопку ')->buttonUrl('stream-telecom.ru')->to(79211234567)->validity(7200); }) ->get();
Получение статуса
$viber_status = $st->viber()->messageId(12345)->get(); // Тип сообщения $viber_status->getStateMessage(); // Статус сообщения $viber_status->getStateMessage(); // Причина, по которой сообщение не было доставлено абоненту $viber_status->getStateErrorMessage(); // Время получения статуса $viber_status->getStateTime(); // Стоимость $viber_status->getPrice();
VK
Установка соединения
$st->setup()->vk('service');
Отправка уведомления:
$st->vk() ->template(8, ['username' => 'Alexey', 'balance' => '1000000']) ->ttl(60) ->to(79999999998) ->get();
Отправка каскадных сообщений в VK
Пакетная отправка уведомений:
$st->vk()->package(static function ($c) { return $c->template(8, ['username' => 'Alexey', 'balance' => '1000000'])->to(7911102461)->ttl(1); })->package(static function ($c) { return $c->template(8, ['username' => 'Alexey', 'balance' => '1000000'])->to(7911102461)->ttl(1); })->get();
Отправка каскадных сообщений в VK