Отправка сообщений через API PROSTOR-SMS на PHP
Отправка сообщений через API PROSTOR-SMS на PHP
При возникновении какой-либо чрезвычайной ситуации очень важно, чтобы были своевременно оповещены все ответственные лица. У нас это делается при помощи бота в Telegram, но в качестве дополнительного канала используются старые добрые SMS-сообщения. В качестве шлюза для отправки SMS мы уже давно выбрали PROSTOR-SMS. Это не реклама, сервис платный и ни разу не дешевый, но мне с этой статьи ни копейки не капает.
Для взаимодействия с внешними приложениями у сервиса есть несколько интерфейсов API, в том числе REST. Готового официального кода для взаимодействия с API не было, а примеры, мягко говоря, оставляют желать лучшего. Поэтому пришлось рисовать свой вариант. Может быть пригодится кому-нибудь еще.
Для работы надо зарегистрироваться на сайте, если хотите, то можно сразу пополнить счет. Что хорошо, там нет никакой подписки, внесенные деньги тратятся только на отправку сообщений. Ну а дальше подключаем класс и отправляем сообщения.
Code (PHP) : Убрать нумерацию
- // Класс для отправки смс
- $sms = new sms();
- // Настройки подключения
- $sms->username = $login;
- $sms->password = $passeord;
- // Сервер для отправки SMS
- $sms->server = 'http://api.prostor-sms.ru';
- // Подключиться к серверу и проверить текущий баланс счета
- if ($sms->connect()) && $sms->get_balance()>100) {
- // Номер для отправки
- $num='+70001234567';
- // Текст сообщения
- $message='Проблемы с сервером BACKUP1';
- // Имя отправителя
- $sender='ALARMA';
- // Проверить имя отправителя
- if ($senders=$sms->get_senders() && in_array($sender, $senders)) {
- // Отправить сообщение
- $sms_id=$sms->send($num,$message,$sender);
- // Получить статус отправки
- $status=$sms->get_status($sms_id);
- if ($status=='delivered') {
- // Сообщение доставлено
- }
- elseif ($status=='delivery error' || $status=='smsc reject') {
- // Перманентная ошибка доставки
- // delivery error - Ошибка доставки SMS (абонент в течение времени
- // доставки находился вне зоны действия сети или номер абонента
- // заблокирован)
- // smsc reject - Сообщение отвергнуто SMSC (номер заблокирован или
- // не существует)
- }
- else {
- // queued - Сообщение находится в очереди
- // smsc submit - Сообщение доставлено в SMSC
- // incorrect id - Неверный идентификатор сообщения
- // unknown error - Произошло что-то непонятное
- }
- }
- }
Дополнительно в классе есть метод is_opsos, который проверят принадлежность номера российским операторам сотовой связи. Он используется, чтобы случайно не отправить SMS на заграничный или стационарный номер.
В приложении скрипт класса на PHP, который реализует работу с API PROSTOR-SMS.
Просмотров: 244 | Комментариев: 2
Метки: PHP
Комментарии
Отзывы посетителей сайта о статье
morgot
(26.07.2024 в 15:41):
Спасибо за код. Не знаешь случайно, там только по России смс, или можно и другие страны? На сайте не найду информации.
Добавить комментарий
Заполните форму для добавления комментария
Коды операторов тоже, наверное, было бы хорошо обновить. А то как сделал список, так и работает.