WhatsApp API — как установить и использовать

Достаточно много видел примеров использования whatsapp-уведомлений с zabbix, и другими системами мониторинга, но на собственные эксперименты с whatsapp меня вдохновила эта статья. Однако если с системами мониторинга все ясно, то при наличии прекрасной «врожденной» системы email-оповещений, городить огород ради одной bacula было откровенно лень. Да и вдруг, потом захочется поставить zabbix или еще что-то куда-то послать? Каждому боту по ватсапу? Так что, пусть это будет что-то более универсальное. Например, отдельный сервер, который сможет обслужить bacula, zabbix, syslog-сервер, сайт или даже виндоусы с макинтошами. UPD: Сразу оговорюсь, что задачи «наиболее простым путем отправить произвольное сообщение на телефон» не стояло, так как есть джаббер, смс, любой мобильный email-клиент, наконец. Задача была: а) приспособить именно whatsapp, так как он уже есть в моем телефоне и еще около 1 млрд других, в отличие от того же пресловутого telegram б) сделать как можно более универсальный шлюз, с которого можно быстро перенаправить рассылку хоть куда, а то и дублировать. Приступим. Я ставил на «пустой» Centos 7 amdx64 в lxc-контейнер под proxmox ve 4.4. Первое, что обычно делаю — обновляю, подключаю epel и ставлю ssh, чтобы потом удобно работать

yum -y update yum -y install epel-release openssh-server systemctl enable sshd systemctl start sshd

Далее ставим зависимости и yowsup:

yum -y install unzip wget tar nano yum -y install python python-dateutil python-argparse yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel yum -y install gcc yum -y install protobuf pycrypto python-axolotl-curve25519 yum -y install python-devel python-pip python-imaging pip install --upgrade pip 

Скачиваем, распаковываем и устанавливаем yowsup:

cd /usr/src/ wget https://github.com/tgalal/yowsup/archive/master.zip unzip master cd yowsup-master/ python setup.py install

Регистрируем номер мобильного. Симка вставлена в мобильник (или шлюз, в моем случае) на который придет смс. Номер не должен быть засвечен в whatsapp. Сначала запрашиваем код регистрации:

yowsup-cli registration --requestcode sms --phone 7xxxxxxxxxx --cc 7 --mcc 250 --mnc xx --env android

В ответ придет смс с кодом вида XXX-XXX, который используем для подтверждения регистрации

yowsup-cli registration --register xxx-xxx --phone 7хххxxxxxxx --cc 7

Сервер сообщит об удачной регистрации: Записываем пароль из переменной pw в конфиг-файл

nano yowsup-cli.config

В этом файле три строчки (страна, номер, пароль):

cc=7 phone=7хххxxxxxxx password=X1isWwe+25d/aOXJpcSduzTV7fg=

Собственно, все. Пробуем

yowsup-cli demos -c yowsup-cli.config -s 7хххххххххх "alarm"

Если сообщение пришло, двигаемся дальше. Чтобы комфортно побаловаться живым whatsapp-чатом из терминала — нужна кириллица. Если ее нет, а вместо нее ошибки вида «ascii … ordinal not in range(128)» — надо поставить локаль и поправить один файл. С localectl
в моем сетапе какие-то проблемы, поэтому:

nano /etc/locale.conf

пишем LANG=ru_RU.UTF-8
, сохраняем и рестартуем сессию Следующим шагом надо поправить кодировку yowsup. Делаем, как сказано тут.

nano /usr/lib/python2.7/site-packages/yowsup2-2.5.2-py2.7.egg/yowsup/demos/cli/layer.py

После строки import sys добавить:

reload(sys) sys.setdefaultencoding('utf8')

должно получиться:

from .cli import Cli, clicmd from yowsup.layers.interface import YowInterfaceLayer, ProtocolEntityCallback from yowsup.layers.auth import YowAuthenticationProtocolLayer from yowsup.layers import YowLayerEvent, EventCallback from yowsup.layers.network import YowNetworkLayer import sys reload(sys) sys.setdefaultencoding('utf8')

Теперь можно запускать живой чат и слать-принимать сообщения кириллицей. Have fun. Наигравшись вдоволь, пора приспособить этот прекрасный инструмент для нужд трудящихся вокруг серверов. Для этого было решено использовать достаточно простой и гибкий инструмент Webhook github.com/adnanh/webhook, хотя есть и масса других способов. Например shell2http github.com/msoap/shell2http. Скачиваем и распаковываем webhook в любой каталог. Я для удобства положил в /var/webhook

cd /usr/src wget https://github.com/adnanh/webhook/releases/download/2.6.3/webhook-linux-amd64.tar.gz tar -xvf webhook-linux-amd64.tar.gz -C /var mv /var/webhook-linux-amd64 /var/webhook

А чтобы потом, при желании, было удобнее добавлять всякие файлы-картинки-видео — так же скопировал yowsup-cli.config в /var/yowsup Как говорится, пусть все будет через одно место.

mkdir /var/yowsup cp /usr/src/yowsup-master/yowsup-cli.config /var/yowsup

Поскольку Webhook позволяет запускать через http заранее подготовленные команды — создадим файл с правилами hooks.json
.

cd /var/webhook​​​​​ nano hooks.json

В файле опишем хук, который будет принимать команды по адресу http://адрес сервера:9000/hooks/wp-admin
, обрабатывать и слать сообщения на whatsapp админа. Внутрь файла добавляем описание условий:

[   {     "id": "wp-admin",     "execute-command": "/var/webhook/admin.sh",     "command-working-directory": "/var/webhook",     "pass-arguments-to-command":     [      {       "source": "url",       "name": "msg"      }     ]   } ]

То есть, каждый, кто вызовет url http://адрес сервера:9000/hooks/wp-admin?msg=привет
— исполнит скрипт /var/webhook/admin.sh
, а тот, в свою очередь, отправит привет админу на whatsupp, и только ему. Я решил не передавать каждый раз пару телефон-сообщение, а при необходимости рассылки на другие номера создать дополнительные хуки. Например, хук с отправкой определенному контакт-листу или универсальный с парой телефон-сообщение и каким-то токеном для вящей безопасности. Итак, проверяем, правильно ли мы написали хук, запуском:

./webhook -hooks hooks.json -verbose

В ответ увидим:

[webhook] 2017/04/26 05:12:48 version 2.6.3 starting [webhook] 2017/04/26 05:12:48 setting up os signal watcher [webhook] 2017/04/26 05:12:48 attempting to load hooks from hooks.json [webhook] 2017/04/26 05:12:48 found 1 hook(s) in file [webhook] 2017/04/26 05:12:48 loaded: wp-admin [webhook] 2017/04/26 05:12:48 serving hooks on 0.0.0.0:9000/hooks/{id}

Далее, создаем скрипт отправки /var/webhook/admin.sh, который будет отсылать сообщения админу:

#! /bin/bash msg="$(echo "$*" | tr ' ' ' ')"  if [[ ! -z "${msg/ //}" ]]; then  /usr/bin/yowsup-cli demos -c /var/yowsup/yowsup-cli.config -s 7xxxxxxxxxx "$msg" fi

Добавлена проверка на пустоту и пробелы, чтобы при любом вызове хука не приходили пустые сообщения. Открываем в браузере http://адрес сервера:9000/hooks/wp-admin?msg=привет
. Все должно работать. Добавляем хук в автозагрузку. Я сделал через systemd
.

nano /etc/systemd/system/webhook.service

Описываем юнит:

[Unit] Description=Webhook After=syslog.target After=network.target  [Service] Type=simple PIDFile=/var/webhook/webhook-service.pid WorkingDirectory=/var/webhook  User=root Group=root  OOMScoreAdjust=-500  ExecStart=/var/webhook/webhook -hooks hooks.json -verbose ExecStop=/usr/bin/pkill -f webhook ExecReload= TimeoutSec=300  [Install] WantedBy=multi-user.target

Сохраняем. Запускаем. Проверяем.

 systemctl enable webhook  systemctl start webhook  systemctl -l status webhook

Теперь можно сделать простую отправку средствами curl с другой машины

curl -G http://адрес сервера:9000/hooks/wp-admin?msg=привет

Однако, так можно слать лишь скучные сообщения без форматирования, похожие на sms. Чтобы получать красиво отформатированные сообщения, да еще и с emoji-графикой нужно предварительно кодировать содержимое msg в urlencode. Иначе в url попадут esc-последовательности. Это пригодится и для дальнейшего примера с Bacula. сurl умеет делать urlencode самостоятельно, только синтаксис будет иным. Например, отправим сообщение с переводом строки:

export VAR="приветnбуфет" export MSG=$(echo -e $VAR) curl -G http://адрес сервера:9000/hooks/wp-admin --data-urlencode msg="$MSG"

Теперь можно заняться bacula, т.е. тем, что, собственно, и сподвигло на вышеописанные пляски Идем на сервер, где установлен bacula-director, ставим bc и curl.

yum -y install bc curl

Потом берем прекрасный скрипт из статьи bacula.us/sending-notification-whatsapp и немного подправляем. Внимание, если хотим использовать смайлики emoji, то файл должен быть в UTF-8. Из секции Variables удаляем RECIPIENT_NUMBER и CONF, они нам не понадобятся. А переменную YOWSEXEC изменяем на curl-вызов хука отправки админу.

# Variables HOUR=$(date +%d/%m/%Y %H:%M:%S) YOWSEXEC="curl -G http://ваш сервер:9000/hooks/wp-admin" LOG="/var/log/bacula/whatsapp.log"

Вводим свои данные для подключения к MySQL

# MySQL config DBUSER="bacula" DBPASSWORD="bacula" DBNAME="bacula"

И вместо строки отправки:

$YOWSEXEC demos --config $CONF --send $RECIPIENT_NUMBER "`echo -e "$MESSAGE${COUNT}"`" &>> $LOG

пишем:

FMSG=`echo -e "$MESSAGE${COUNT}"`    $YOWSEXEC --data-urlencode msg="$FMSG" &>> $LOG

Ставим права на исполнение:

chmod +x /etc/bacula/send_whatsapp.sh

Готово. Теперь, как указано в статье, можно вставлять в задания

Command = "/etc/bacula/send_whatsapp.sh %i" 

и получать на телефон красивые отчеты: Всем спасибо. Буду благодарен за комментарии и поправки. UPD(12.01.2018): Yousup обновили до 2.5.7, баги поправили. Если у кого не работает — обновить yowsup, при регистрации использовать –env android (поправил выше).

Гороскоп от астролога Тамара Глоба для всех знаков зодиака

102

28.9k


102

Главная

/
FAQ

WhatsApp API был создан разработчиками мессенджера в качестве инструмента для бизнеса. Эта услуга была добавлена только в начале августа 2018 года. Длительное время применение мессенджера возможно было только для личных разговоров и объединения коллег и сотрудников в группы.

Что касается массовых рассылок и уведомлений, то подобное исключалось во избежание проблемы спама. Тем не менее, добавление инструмента стало отличным решением для ведения бизнеса при помощи мессенджера.

Характеристика WhatsApp Business API

Инструмент для бизнеса WhatsApp API – это клиент, который обеспечивает официальным брендам и компаниям отправлять рассылки на официальном уровне.

Услуга предоставляется на платной основе и доступна только подтвержденным бизнес-аккаунтам

Отправка возможна при условии соединения с платформами, которые предварительно прошли модерацию, или же через CRM системы. Компании, которые получили доступ к рассылкам, могут:

  • Отправлять клиентам в чаты WhatsApp тигерные и системные сообщения;
  • Уведомления о выполнении операции или подключении услуги;
  • Статус доставки товара;
  • Сообщение об успешной оплате;
  • Напоминания о предстоящих событиях компании;
  • Извещение о новых скидках или акциях;
  • Статус записи на прием.

При этом для обоих случаев необходимо заранее согласовать шаблоны. В качестве основы могут применяться такие переменные, как дата и время заказа, сумма оплаты, способ перечисления средств и другие.

Примечание!
В рамках услуги бизнес-аккаунты не могут отправлять сообщения с рекламным содержимым. Также запрещены промосообщения

В случае попытки совершать рассылки с рекламным содержимым, система наказывает блокировкой аккаунта. Так как разработчики мессенджера постоянно борются с любой рекламой, рекомендуется придерживаться правил. Поскольку в случае блокировки аккаунта денежные средства не возвращаются.

Джина Грей - история персонажа Marvel, актриса, ее суперсила и способности - 24СМИ

Пересылка сообщений возможна не только внутри системы мессенджера Ватсап. Бизнес может отправлять уведомления клиентам, у которых есть профили в других социальных сетях (например, Фейсбук, Вконтакте). Это возможно благодаря опции – рассылка по номерам телефонов.

Установка WhatsApp API

Активация услуги возможно через официальный сайт мессенджера или же на странице Facebook business. При этом компания получает подтвержденный уникальный профиль с полезными сведениями для клиентов. Создатель или управляющий аккаунтом имеет возможность добавить контактные данные, описание и реальный адрес. Для этого нужно знать, как установить клиент на устройство.

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

  1. В маркете приложений ввести наименование приложения, запустить поиск.
  2. На странице с информацией нажать кнопку – Установить.
  3. Дождаться завершения загрузки и установки.
  4. Открыть приложение.
  5. Коснуться зеленой кнопки с наименованием – Принять
    и
    продолжить.
  6. Предоставить разрешения.
  7. Подтвердить правильность ввода.
  8. Ввести код активации, который придет в сообщении.
  9. Создать бизнесс аккаунт. Ввести имя, добавить фото профиля, а также указать вид деятельности.
  10. Далее можно добавить описание и адрес офиса или компании.

По завершении пользователь будет перенаправлен в основное меню, которое практически не отличается от WhatsApp для общения с друзьями и родными. Следующим этапом будет оформление заявки. Это можно сделать на официальной странице.

Веб клиент

Также предусмотрена онлайн версия инструмента. Пользователи имеют доступ к бизнес-аккаунтам на официальном сайте через WhatsApp Web API. Там предоставлены все необходимые сведения по применению. Кроме этого можно ознакомиться с отзывами компаний, которые уже пользуются преимуществами функции.

Базовые условия применения

Процесс эксплуатации клиента WhatsApp API возможен только при соблюдении установленных правил и условий. Даже активация услуги имеет ограничения, что требует предварительного изучения правил и пользовательского соглашения. Это важно не только из-за того, что услуга платная, но и потому, что за нарушения аккаунт может быть заблокирован.

Среди основных условий следует выделить:

  1. Пользоваться WhatsApp Business API могут только одобренные системой компании. Всего два типа компаний получает подобную привилегию: 1)коммуникационные платформы с решениями для развития бизнеса; 2) крупные корпорации и бренды мирового уровня.
  2. Оформление активации клиента начинается с подачи заявки, которую должен одобрить (или отклонить) WhatsApp. Модерация предусматривает предоставление точных и достоверных данных о компании. Указанное в момент подачи заявки имя аккаунта в дальнейшем будет отображаться в диалогах с клиентами.
  3. Обязательно совершается привязка номер мобильного телефона. При этом не все телефонные номера могут быть одобрены. Применять можно такие типы: +7 (911) – мобильные номера любых операторов; +7 (495) – телефонные городские номера.

Важно!
Бесплатные номера с кодом 8-800 не доступны к подключению

  1. Шаблон, использованный для рассылки, должен быть утвержден и может быть изменен только по согласованию. При этом есть возможность редактирования при помощи применения разных шрифтов, которые доступны в Ватсап.
  2. Действует лимит на рассылку – 15 штук/секунду.
  3. Чтобы отправлять каждому из клиентов уведомления через клиент API, обязательным условием является соглашение обоих сторон. Клиент должен подтвердить свое согласие на получение.
  4. Услуга позволяет отправлять предложения, чтобы клиенты подписались на WhatsApp компании. Операция совершается через сторонние сервисы – смс сообщения на телефон или электронная почта.
  5. Сообщения могут включать разные переменные. Одной из таких является ссылка на аккаунт в другой социальной сети.
Количество нижегородцев за год уменьшилось на 20,3 тысячи: статистика

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

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

Стоимость рассылок

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

  • Tutorial

Достаточно много видел примеров использования whatsapp-уведомлений с zabbix, и другими системами мониторинга, но на собственные эксперименты с whatsapp меня вдохновила эта статья. Однако если с системами мониторинга все ясно, то при наличии прекрасной «врожденной» системы email-оповещений, городить огород ради одной bacula было откровенно лень. Да и вдруг, потом захочется поставить zabbix или еще что-то куда-то послать? Каждому боту по ватсапу? Так что, пусть это будет что-то более универсальное. Например, отдельный сервер, который сможет обслужить bacula, zabbix, syslog-сервер, сайт или даже виндоусы с макинтошами. UPD: Сразу оговорюсь, что задачи «наиболее простым путем отправить произвольное сообщение на телефон» не стояло, так как есть джаббер, смс, любой мобильный email-клиент, наконец. Задача была: а) приспособить именно whatsapp, так как он уже есть в моем телефоне и еще около 1 млрд других, в отличие от того же пресловутого telegram б) сделать как можно более универсальный шлюз, с которого можно быстро перенаправить рассылку хоть куда, а то и дублировать. Приступим. Я ставил на «пустой» Centos 7 amdx64 в lxc-контейнер под proxmox ve 4.4. Первое, что обычно делаю — обновляю, подключаю epel и ставлю ssh, чтобы потом удобно работать

yum -y update yum -y install epel-release openssh-server systemctl enable sshd systemctl start sshd

Далее ставим зависимости и yowsup:

yum -y install unzip wget tar nano yum -y install python python-dateutil python-argparse yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel yum -y install gcc yum -y install protobuf pycrypto python-axolotl-curve25519 yum -y install python-devel python-pip python-imaging pip install --upgrade pip 

Скачиваем, распаковываем и устанавливаем yowsup:

cd /usr/src/ wget https://github.com/tgalal/yowsup/archive/master.zip unzip master cd yowsup-master/ python setup.py install

Регистрируем номер мобильного. Симка вставлена в мобильник (или шлюз, в моем случае) на который придет смс. Номер не должен быть засвечен в whatsapp. Сначала запрашиваем код регистрации:

yowsup-cli registration --requestcode sms --phone 7xxxxxxxxxx --cc 7 --mcc 250 --mnc xx --env android

В ответ придет смс с кодом вида XXX-XXX, который используем для подтверждения регистрации

yowsup-cli registration --register xxx-xxx --phone 7хххxxxxxxx --cc 7

Сервер сообщит об удачной регистрации: Записываем пароль из переменной pw в конфиг-файл

nano yowsup-cli.config

В этом файле три строчки (страна, номер, пароль):

cc=7 phone=7хххxxxxxxx password=X1isWwe+25d/aOXJpcSduzTV7fg=

Собственно, все. Пробуем

yowsup-cli demos -c yowsup-cli.config -s 7хххххххххх "alarm"

Если сообщение пришло, двигаемся дальше. Чтобы комфортно побаловаться живым whatsapp-чатом из терминала — нужна кириллица. Если ее нет, а вместо нее ошибки вида «ascii … ordinal not in range(128)» — надо поставить локаль и поправить один файл. С localectl
в моем сетапе какие-то проблемы, поэтому:

nano /etc/locale.conf

пишем LANG=ru_RU.UTF-8
, сохраняем и рестартуем сессию Следующим шагом надо поправить кодировку yowsup. Делаем, как сказано тут.

nano /usr/lib/python2.7/site-packages/yowsup2-2.5.2-py2.7.egg/yowsup/demos/cli/layer.py

После строки import sys добавить:

reload(sys) sys.setdefaultencoding('utf8')

должно получиться:

from .cli import Cli, clicmd from yowsup.layers.interface import YowInterfaceLayer, ProtocolEntityCallback from yowsup.layers.auth import YowAuthenticationProtocolLayer from yowsup.layers import YowLayerEvent, EventCallback from yowsup.layers.network import YowNetworkLayer import sys reload(sys) sys.setdefaultencoding('utf8')

Теперь можно запускать живой чат и слать-принимать сообщения кириллицей. Have fun. Наигравшись вдоволь, пора приспособить этот прекрасный инструмент для нужд трудящихся вокруг серверов. Для этого было решено использовать достаточно простой и гибкий инструмент Webhook github.com/adnanh/webhook, хотя есть и масса других способов. Например shell2http github.com/msoap/shell2http. Скачиваем и распаковываем webhook в любой каталог. Я для удобства положил в /var/webhook

cd /usr/src wget https://github.com/adnanh/webhook/releases/download/2.6.3/webhook-linux-amd64.tar.gz tar -xvf webhook-linux-amd64.tar.gz -C /var mv /var/webhook-linux-amd64 /var/webhook

А чтобы потом, при желании, было удобнее добавлять всякие файлы-картинки-видео — так же скопировал yowsup-cli.config в /var/yowsup Как говорится, пусть все будет через одно место.

mkdir /var/yowsup cp /usr/src/yowsup-master/yowsup-cli.config /var/yowsup

Поскольку Webhook позволяет запускать через http заранее подготовленные команды — создадим файл с правилами hooks.json
.

cd /var/webhook​​​​​ nano hooks.json

В файле опишем хук, который будет принимать команды по адресу http://адрес сервера:9000/hooks/wp-admin
, обрабатывать и слать сообщения на whatsapp админа. Внутрь файла добавляем описание условий:

[   {     "id": "wp-admin",     "execute-command": "/var/webhook/admin.sh",     "command-working-directory": "/var/webhook",     "pass-arguments-to-command":     [      {       "source": "url",       "name": "msg"      }     ]   } ]

То есть, каждый, кто вызовет url http://адрес сервера:9000/hooks/wp-admin?msg=привет
— исполнит скрипт /var/webhook/admin.sh
, а тот, в свою очередь, отправит привет админу на whatsupp, и только ему. Я решил не передавать каждый раз пару телефон-сообщение, а при необходимости рассылки на другие номера создать дополнительные хуки. Например, хук с отправкой определенному контакт-листу или универсальный с парой телефон-сообщение и каким-то токеном для вящей безопасности. Итак, проверяем, правильно ли мы написали хук, запуском:

./webhook -hooks hooks.json -verbose

В ответ увидим:

[webhook] 2017/04/26 05:12:48 version 2.6.3 starting [webhook] 2017/04/26 05:12:48 setting up os signal watcher [webhook] 2017/04/26 05:12:48 attempting to load hooks from hooks.json [webhook] 2017/04/26 05:12:48 found 1 hook(s) in file [webhook] 2017/04/26 05:12:48 loaded: wp-admin [webhook] 2017/04/26 05:12:48 serving hooks on 0.0.0.0:9000/hooks/{id}

Далее, создаем скрипт отправки /var/webhook/admin.sh, который будет отсылать сообщения админу:

#! /bin/bash msg="$(echo "$*" | tr ' ' ' ')"  if [[ ! -z "${msg/ //}" ]]; then  /usr/bin/yowsup-cli demos -c /var/yowsup/yowsup-cli.config -s 7xxxxxxxxxx "$msg" fi

Добавлена проверка на пустоту и пробелы, чтобы при любом вызове хука не приходили пустые сообщения. Открываем в браузере http://адрес сервера:9000/hooks/wp-admin?msg=привет
. Все должно работать. Добавляем хук в автозагрузку. Я сделал через systemd
.

nano /etc/systemd/system/webhook.service

Описываем юнит:

[Unit] Description=Webhook After=syslog.target After=network.target  [Service] Type=simple PIDFile=/var/webhook/webhook-service.pid WorkingDirectory=/var/webhook  User=root Group=root  OOMScoreAdjust=-500  ExecStart=/var/webhook/webhook -hooks hooks.json -verbose ExecStop=/usr/bin/pkill -f webhook ExecReload= TimeoutSec=300  [Install] WantedBy=multi-user.target

Сохраняем. Запускаем. Проверяем.

 systemctl enable webhook  systemctl start webhook  systemctl -l status webhook

Теперь можно сделать простую отправку средствами curl с другой машины

curl -G http://адрес сервера:9000/hooks/wp-admin?msg=привет

Однако, так можно слать лишь скучные сообщения без форматирования, похожие на sms. Чтобы получать красиво отформатированные сообщения, да еще и с emoji-графикой нужно предварительно кодировать содержимое msg в urlencode. Иначе в url попадут esc-последовательности. Это пригодится и для дальнейшего примера с Bacula. сurl умеет делать urlencode самостоятельно, только синтаксис будет иным. Например, отправим сообщение с переводом строки:

export VAR="приветnбуфет" export MSG=$(echo -e $VAR) curl -G http://адрес сервера:9000/hooks/wp-admin --data-urlencode msg="$MSG"

Теперь можно заняться bacula, т.е. тем, что, собственно, и сподвигло на вышеописанные пляски Идем на сервер, где установлен bacula-director, ставим bc и curl.

yum -y install bc curl

Потом берем прекрасный скрипт из статьи bacula.us/sending-notification-whatsapp и немного подправляем. Внимание, если хотим использовать смайлики emoji, то файл должен быть в UTF-8. Из секции Variables удаляем RECIPIENT_NUMBER и CONF, они нам не понадобятся. А переменную YOWSEXEC изменяем на curl-вызов хука отправки админу.

# Variables HOUR=$(date +%d/%m/%Y %H:%M:%S) YOWSEXEC="curl -G http://ваш сервер:9000/hooks/wp-admin" LOG="/var/log/bacula/whatsapp.log"

Вводим свои данные для подключения к MySQL

# MySQL config DBUSER="bacula" DBPASSWORD="bacula" DBNAME="bacula"

И вместо строки отправки:

$YOWSEXEC demos --config $CONF --send $RECIPIENT_NUMBER "`echo -e "$MESSAGE${COUNT}"`" &>> $LOG

пишем:

FMSG=`echo -e "$MESSAGE${COUNT}"`    $YOWSEXEC --data-urlencode msg="$FMSG" &>> $LOG

Ставим права на исполнение:

chmod +x /etc/bacula/send_whatsapp.sh

Готово. Теперь, как указано в статье, можно вставлять в задания

Command = "/etc/bacula/send_whatsapp.sh %i" 

и получать на телефон красивые отчеты: Всем спасибо. Буду благодарен за комментарии и поправки. UPD(12.01.2018): Yousup обновили до 2.5.7, баги поправили. Если у кого не работает — обновить yowsup, при регистрации использовать –env android (поправил выше).

Рейтинг
( Пока оценок нет )
/ автор статьи
Загрузка ...
It-Blog | SEO-INTERNET-HARDWARE-SOFT
Adblock
detector