Модуль для отправки SMS на Drupal

Представляю небольшой модуль для отправки СМС-сообщений с сайтов на Drupal.
Из возможностей:
- Интеграция с Rules
- Простая форма для отправки сообщений
- Отправка сообщений программно
Ниже рассмотрим все подробности.
UPD - на Drupal.org, доступен полноценный модуль SMSC. Рекомендую использовать его. Модуль реализован для Друпал версий 7 и 8. Обзор модуля здесь.
Модули не совместимы между собой, но и не конфликтуют. Если Вы ранее использовали модуль представленный здесь - для перехода на официальный лучше удалить старый и определить все действия в новом.
Установка и настройка модуля
Модуль предназначен для сайтов на Drupal 7.
Для начала нужно скачать и установить модуль на свой сайт.
Модуль состоит из следующих компонентов:
- AWD SMS API - основной модуль предоставляющий функционал отправки SMS;
- AWD Simple SMS form - подмодуль, добавляющий на сайт простую форму отправки сообщений;
- AWD SMS Rules integration - подмодуль, интегрирующий возможность отправки SMS с помощью правил;
Включаем все три модуля.
После включения, первым делом, нужно перейти в настройки модуля "Управление » Конфигурация » AWD SMS API » Настройки AWD SMS API" (admin/config/sms/settings) и авторизироваться.
Для отправки СМС используется шлюз от сервиса SMSC.ua / SMSC.ru. Этот сервис хорошо себя зарекомендовал, лично использую его уже более 3-х лет, устраивает и работа и тарифы.
Если у Вас нет аккаунта в этом сервисе - его нужно создать, и данные ввести на странице настройки модуля.
На этой же странице можно указать "Sender ID" - имя или номер, от которого будут приходить сообщения, например название компании. Обратите внимание, что устанавливать "Sender ID" для аккаунта можно несколько, по ним есть ограничения и они должны быть утверждены в сервисе. Так же есть возможность выбора основного значения в настройках аккаунта.
Если необходимо разграничить возможности использования модуля - это можно сделать наделив определенные роли правами использования модулей, на странице настройки прав (admin/people/permissions).
После сохранения настроек можно приступать к отправке СМС'ок.

Отправка сообщений с помощью формы
Форма для отправки находится по адресу "admin/config/sms/send".

Ей можно воспользоваться в любой момент на свое усмотрение. Можно поздравлять клиентов с праздниками, отправлять полезную информацию, извещать об изменениях статуса заказа или сообщать треки для отслеживания посылок. В общем все ограничивается Вашей фантазией...
Пользоваться проще простого - вводите номер телефона, сообщение и, если нужно, отмечаете необходимость транслитерации (какая-никакая экономия)...
Отправка происходит моментально, без перезагрузки страницы. После отправки Вы увидите статус отправки сообщения.

Отправка сообщений с помощью Rules
Если же нужно автоматизировать процесс отправки - Вам поможет "любимый" Rules.
Модуль целенаправленно не привязан ни к каким подсистемам типа "Commerce", "Ubercart", всевозможным CRM и т.п.
Отправка всегда доступна, без привязки, в любом из перечисленных компонентов и во всех других случаях.
Просто создаем правило, или компонент с необходимыми Вам настройками и в действиях (Actions) выбираем "Отправить SMS".

Внутри все просто - добавляем телефон и сообщение, отмечаем необходимость транслитерации и отображения сообщения со статусом отправки.
Скриншот страницы настройки действия.
Все, готово. Можете не переживать о извещениях клиентов, за Вас будет работать Drupal.
Программная отправка сообщений
Для отправки сообщений из своего модуля нужно воспользоваться функцией awd_sms_send_sms(), в ней передаем 4 параметра: телефон, сообщение, необходимость транслитерации и статус сообщения (массив).
На выходе получаем вернувшийся массив со статусами сообщения с элементами:
- "code" - код ошибки сообщения от провайдера (0 - Сообщение отправлено);
- "message" - расшифровка кода ошибки;
- "error" - текст ошибки;
- "type" - тип сообщения Drupal ('status' или 'error');
Выглядит это примерно так:
$phone = 'НОМЕР_ТЕЛЕФОНА';
$message = 'СООБЩЕНИЕ';
$translit = 0;
$message_status = array();
awd_sms_send_sms($phone, $message, $translit, $message_status);
$message = drupal_set_message($message_status['message'].' '.$message_status['error'], $message_status['type']);
UPD - на Drupal.org, доступен полноценный модуль SMSC. Рекомендую использовать его. Модуль реализован для Друпал версий 7 и 8. Обзор модуля здесь.
Модули не совместимы между собой, но и не конфликтуют. Если Вы ранее использовали модуль представленный здесь - для перехода на официальный лучше удалить старый и определить все действия в новом.
Вложение | Размер |
---|---|
![]() | 13.23 КБ |
Комментарии
Спасибище тебе!!! Выручил так выручил. Уже надоело искать нормально работающий модуль, еще и бесплатно. Все работает замечательно, СМСки приходят мгновенно 8) Подключил и настроил за 2 минуты, аж не верится в такое чудо. Спасибо-спасибо-спасибо!
Вчера установил. Все работает. Спасибо!
Скажите а возможно ли использовать Ваш модуль с французскими безплатными сервисами СМС-сообщений ? (]]>http://www.mestextos.com/]]> ]]>http://www.1max2sms.com/sms-gratuit.html]]>)
Спасибо все работает. Вопрос а можно отправлять сразу на несколько номеров одно смс?
Если отправлять Rules'ом - можно запускать отправку циклом.
В теории, можно вписать несколько номеров через запятую. Должно сработать, но этим не стоит увлекаться, прежде всего по ограничениям FAPI в поле помещается не более 128 символов.
Главное не отправлять одинаковые сообщения на один и тот же номер в течении 1-й минуты, у них система блокирует подобное поведение.
А можно поподробней про отправку циклом рулсом? Это как?
Вот, как раз доделывал мануал по циклам.
Адаптировал её под Ваш вопрос.
Спасибо огромное за модуль!
Здравствуйте! Чёт печалька какая то, не хочет отправлять смс, а нигде не нужно менять сервер с украинского на русский? И при отправке смс через окно, выдает ошибку Аякс((((
Ранее ошибок не было обнаружено. Проверяйте настройки Вашего сайта.
(Переключать ничего не нужно)
Добрый день, подскажите как организовать массовую рассылку определенной роли пользователей?
Пост изучен вдоль и поперек, способ работает только если указывать номера вручную( Не получается получить данные из профилей пользователей и создать из них список для рассылки циклом( Мучаюсь уже долго...
Вот здесь про циклы