Категория:
Опубликовано:

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

Drupal SMS

Представляю небольшой модуль для отправки СМС-сообщений с сайтов на 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".

Rules Actions

Внутри все просто - добавляем телефон и сообщение, отмечаем необходимость транслитерации и отображения сообщения со статусом отправки.

Скриншот страницы настройки действия.

Все, готово. Можете не переживать о извещениях клиентов, за Вас будет работать 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. Обзор модуля здесь.

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

Скачать модуль.

ВложениеРазмер
Иконка пакета awd_sms.zip13.23 КБ
Теги: 
Если у Вас возникли вопросы, замечания, предложения или просто благодарность - пишите в комментариях.
Делитесь полезными материалами в социальных сетях.

Комментарии

Спасибище тебе!!! Выручил так выручил. Уже надоело искать нормально работающий модуль, еще и бесплатно. Все работает замечательно, СМСки приходят мгновенно 8) Подключил и настроил за 2 минуты, аж не верится в такое чудо. Спасибо-спасибо-спасибо!

Вчера установил. Все работает. Спасибо!

В настоящий момент модуль работает только с одним шлюзом.

Спасибо все работает. Вопрос а можно отправлять сразу на несколько номеров одно смс?

Если отправлять Rules'ом - можно запускать отправку циклом.

В теории, можно вписать несколько номеров через запятую. Должно сработать, но этим не стоит увлекаться, прежде всего по ограничениям FAPI в поле помещается не более 128 символов.

Главное не отправлять одинаковые сообщения на один и тот же номер в течении 1-й минуты, у них система блокирует подобное поведение.

А можно поподробней про отправку циклом рулсом? Это как?

Вот, как раз доделывал мануал по циклам.

Адаптировал её под Ваш вопрос.

Спасибо огромное за модуль!

Всегда пожалуйста.

Здравствуйте! Чёт печалька какая то, не хочет отправлять смс, а нигде не нужно менять сервер с украинского на русский? И при отправке смс через окно, выдает ошибку Аякс((((

Ранее ошибок не было обнаружено. Проверяйте настройки Вашего сайта.

(Переключать ничего не нужно)

Добрый день, подскажите как организовать массовую рассылку определенной роли пользователей?

Посмотрите этот пост. На его основе можно соорудить.

Пост изучен вдоль и поперек, способ работает только если указывать номера вручную( Не получается получить данные из профилей пользователей и создать из них список для рассылки циклом( Мучаюсь уже долго...