manzadey / stream-telecom
PHP Package for stream-telecom.ru
Fund package maintenance!
Open Collective
Installs: 4 301
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
pkg:composer/manzadey/stream-telecom
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