Всем привет.
К сожалению, на работе отказались от своего мессенджера и перешил на сраный, мерзкий и никому ненужный, ублюдочный «VK Teams».
Стоит ли говорить какое это убогое и всратое поделие? Думаю, что нет. Любой нормальный человек понимает какое это дерьмо и не станет связываться с этим.
Тем не менее, у меня нет выбора и приходится мириться, пока не найду что-то подходящее.
Была поставлена задача настроить оповещения о проверки состояния серверов (пока это самописные скрипты) и служб.
Ну что же, приступим…
Содержание
Создание бота.
Для начала надо создать бота, примерно так же, как в «телеге».
Найти @metabot и нажать кнопку «Начать«.
Бот выдаст такое меню:
Т.к. я перед заметкой уже сделал бота и настроил его то, возможно, у меня меню чуть более расширенное. Поэтому может отличаться какими-то пунктами. В любом случае нам нужен пункт «Создать нового бота«.
Вводим имя бота и отправляем. Если допустите ошибку, то metabot об это скажет. Ник бота обязательно должен оканчивать на bot. Если ник введен правильно, то metabot выдаст botId, ник и токен. Это как раз то, что понадобиться для отправки сообщений.
Так же обратите внимание на URL API — это тоже очень важно! (в приветственном сообщении от metabot’а)
1 2 | API url: https://myteam.mail.ru/bot/v1/ |
Так, теперь надо разрешить нашему боту добавление в группу(ы). Надо отправить /start и в меню выбрать «(Не)разрешить боту добавлять в чаты«
После этого надо ввести ник созданного бота или его ID:
Потом ввести «enable» или «disable» можно без кавычек:
Тут понятно:
- enable — разрешить добавление в чат(ы)
- disable — запретить добавление в чат(ы)
Мы вводим enable
и получаем «Успех!»
Группа\Канал.
Создание группы\канала простое. Тут и нечего описывать.
Это доступно из основного меню.
Я зачем-то сделал группу, хотя в моем случае лучше бы подошел канал. Ну уже ладно. Но потом попробовал создать канал — так же всё. Только канал сразу создается публичным. Его потом можно сделать частным через его меню. Оно вызывается по нажатию это кнопки:
Посмотреть ID группы\канала можно в свойствах — там где ссылка. Всё что после profile/…. — это и есть ID
А это скрин канала:
Вот тут в настройках канала надо убрать что он публичный:
Тут есть некий «Идентификатор (ID)», но он нам не нужен. Реальный ID тот, что по ссылке после /profile/.
Теперь добавляем бота в группу\канал, даем ему возможность писать или делаем админом.
На этом всё.
Отправка сообщений в группу\канал VK Teams.
Собственно, сам скрипт отправки сообщений в выше созданную группу или канал:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #!/bin/bash #set -x #VK TEAMS sraniy function F_VK_MES () { #CHAT_ID="******************" #group CHAT_ID="*******************" #channel BOT_TOKEN="xxxxxxxxxxxxxxxxx:zzzzzzzzzzzzzzzz" curl -s -d "token=$BOT_TOKEN&chatId=$CHAT_ID&text=$1" https://myteam.mail.ru/bot/v1//messages/sendText } systemctl is-active --quiet [my_importatnt_service] if [ $? != 0 ] then echo "CHECK FAILED!" F_VK_MES "[SERVICE_NAME] STATUS: CHECK ERROR!!! TRY RESTART!" systemctl restart [my_importatnt_service] if [ $? != 0 ] then F_VK_MES "[SERVICE_NAME] RESTART: FAILED! LOOK WITH YOUR EYES!" else F_VK_MES "[SERVICE_NAME] RESTART: SUCCEFULLY!" fi else echo "CHECK OK" F_VK_MES "[SERVICE_NAME] STATUS: I STILL LIVE" fi |
Это простой пример: проверка статуса сервиса.
Если всё плохо, то прислать сообщение и перезапустить, и прислать сообщение о результате перезапуска.
Если всё хорошо, то прислать сообщение, что всё хорошо. Но это всех задолбало и попросили брать.
Уведомление выглядит вот так:
Отправка файла.
Тут будет вот такой скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #!/bin/bash set -x CHAT_ID="*******************" #channel BOT_TOKEN="xxxxxxxxxxxxxxxxx:zzzzzzzzzzzzzzzz" BASE_URL="https://myteam.mail.ru/bot/v1" ENDPOINT="/messages/sendFile" function F_VK_FILE () { local file_path=$1 FULL_URL="${BASE_URL}${ENDPOINT}?token=${BOT_TOKEN}&chatId=${CHAT_ID}" curl -X POST -F "file=@$file_path" "$FULL_URL" } F_VK_FILE "vk_teams.png" |
Файл «vk_teams.png» лежит рядом со скриптом. В противном случае надо будет указывать полный путь.
Ссылки:
If you found an error, highlight it and press Shift + Enter or to inform us.