Модуль для BAS: Отправка уведомлений в телеграм



  • Часто приходится отправлять различные уведомления о работе скрипта, а не просто писать их в лог, особенно это полезно делать, если выши скрипты работают на удаленных серверах. Для подобных уведомлений я выбрал телеграм, и его фишку боты, и написал простой модуль для работы с ним, которым делюсь с вами.

    Перед использованием модуля, вам нужно создать собственного бота в телеграм, получить его access_token и chat_id. Это делается в течение 5 минут, просто следуйте инструкции, которая доступна по этой ссылке https://habrahabr.ru/post/306222/

    Установка и использование модуля.

    1. Скачайте и распакуйте данный архив 0_1495017026968_Telegram.zip

    2. Скопируйте полученную директорию в папку modules.
    0_1494839344290_dir.png

    3. Перезапустите бас если он был запущен.

    4. Найдите модуль "Телеграм" и выберите в нем действие "Отправить Сообщение"
    0_1495017053154_2017-05-17_202222.png

    5. Впишите ваш access_token, chat_id и текст сообщения.
    0_1494839384406_2017-05-15_190302.png

    Демонстрация работы: https://cloud.mail.ru/public/ERdt/hVMDiPFt6


  • administrators

    @santilo Круто! Голосую за добавление его в официальную сборку!



  • @Fox спасибо за вашу оценку



  • В новой версии баса 18.5, модуль перестал отображаться, я его обновил, тем кто его использует, перекачайте архив с модулем в первом сообщение.


  • administrators

    @santilo Я очень рад, что кто-то освоил систему модулей и добавил в БАС функционала. Очень круто.
    Посмотрел код - тоже все на высоте.
    Единственные 2 вещи, которые я добавлю, это ссылку на ман по созданию бота прямо в интерфейсе и сделаю функцию getTime локальной переменной, чтобы память очищалась после отправки сообщения, и чтобы она не конфликтовала, если пользователь решит создать функцию с таким же именем.

    И с вашего разрешения добавлю в основную сборку.

    Огромное спасибо!



  • @support said in Модуль для BAS: Отправка уведомлений в телеграм:

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

    1 да, так гораздо удобней будет, я сам хотел эту ссылку добавить в интерфейс, но не стал)
    2 по getTime , я даже об этом не подумал) спасибо вам, теперь буду знать про эти нюансы.

    @support said in Модуль для BAS: Отправка уведомлений в телеграм:

    И с вашего разрешения добавлю в основную сборку.

    Ух ты) мне приятно, что вы его захотели добавить в основную сборку, я обеими руками за это!

    @support said in Модуль для BAS: Отправка уведомлений в телеграм:

    Огромное спасибо!

    Это вам спасибо за такой шикарный софт, постоянные апдейты и оказываемую поддержку.



  • Подскажите пожалуйста, как в тексте сообщения поставить переход на следующую строку?
    http://joxi.ru/brRGvZgtQnqE1m?d=1



  • @follower21, попробуй <RETURN> воткнуть между ними, хотя не факт что сработает.



  • @bigorat не помогло. вернул <RETURN> прямо текстом)



  • @follower21, тогда хз, может ещё спецсимвол перевода каретки попробовать вроде \r, но может я и путаю...



  • @follower21 said in Модуль для BAS: Отправка уведомлений в телеграм:

    Подскажите пожалуйста, как в тексте сообщения поставить переход на следующую строку?
    http://joxi.ru/brRGvZgtQnqE1m?d=1

    Форматируй сообщение для телеграма в действие "Шаблон", в нем сохраняются все переносы строк. На выходе у тебя будет переменная TEMPLATE_RESULT (имя по умолчанию), ее и вставляй в текст сообщения.
    0_1506002937477_2017-09-22_000808.png
    0_1506002624237_2017-09-22_000121.png



  • @santilo спасибо, все отображается корректно



  • Как постить сразу в канал?
    Если ввожу id бота, то постит у бота.
    Но как сразу узнать id канала?

    Получилось Get запросом. Но как сделать отправку в несколько строк?



  • @teamgame said in Модуль для BAS: Отправка уведомлений в телеграм:

    Как постить сразу в канал?

    Также как и боту, только вместо id чата, в соответствующее поле вставляешь имя канала (вначале имени поставь @).

    @teamgame said in Модуль для BAS: Отправка уведомлений в телеграм:

    Но как сделать отправку в несколько строк?

    Выше есть ответ на этот вопрос, используй действие "Шаблон".



  • @santilo said in Модуль для BAS: Отправка уведомлений в телеграм:

    @teamgame said in Модуль для BAS: Отправка уведомлений в телеграм:

    Как постить сразу в канал?

    Также как и боту, только вместо id чата, в соответствующее поле вставляешь имя канала (вначале имени поставь @).

    @teamgame said in Модуль для BAS: Отправка уведомлений в телеграм:

    Но как сделать отправку в несколько строк?

    Выше есть ответ на этот вопрос, используй действие "Шаблон".

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


  • administrators

    @santilo Неплохо было бы добавить экшен Прочитать Сообщение, через getUpdates например.
    Парсить ответ из json в список, оформить их с датой и временем.


  • administrators

    Если кому вдруг понадобится, вот вариант через node js:
    Скрипт сохраняет в массив все последние, непрочитанные сообщения.



  • @Fox У меня почему та не выводит http://prntscr.com/izuqfr


  • administrators

    Немного усовершенствовал модуль.
    Теперь экшен HTTP-Клиент Прокси применяется и для модуля Телеграм
    0_1524231023886_на форум 35.png


    Добавил возможность Получить Сообщение
    0_1524231164600_на форум 36.png
    0_1524231242892_на форум 37.png


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

    дата [время] имя: текст
    2018.04.20 [13:35:18] Fox_vodniki: Hello
    

    0_1524231786406_на форум 38.png
    0_1524231861962_на форум 39.png
    И сохраняет в список TELEGRAM_MESSAGES_LIST.


    Для установки нужно:

    1. Скачайте и распакуйте данный архив Telegram.rar
    2. Скопируйте полученную директорию в папку modules, заменяя файлы (или удалите заранее папку Telegram)
      0_1524232171460_на форум 40.png
    3. Перезапустите бас если он был запущен.

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


  • administrators

    С модулями раньше не имел дела, даже сегодня утром я ещё не знал как они работают. Мануала не нашёл, писал разбирая и смотря другие модули :D.