Воронеж +7 (473) 211 00 12
Конкурс-бот Telegram на 1С:Предприятие 8.3

Конкурс-бот Telegram на 1С:Предприятие 8.3

24.09.2024 16:36:00

Информация о пользовательском / клиентском функционале.

При создании Telegram-бота использовался метод /setWebhook, который позволяет получать данные сообщений сразу при их отправке (вместо /getFile). Метод /setWebhook дополняется параметрами

  • update_id, message, callback_query, channel_post, inline_query, message_reaction

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

Текст при приёме переводится в формат JSON (платформы 1С), что позволяет обращаться отдельным полям сообщения. На анализе содержимого полей JSON и основан алгоритм работы Telegram-бота. Предварительно анализу выполняется контроль формата сообщения, ведь запросы-http форматов callback и inline должны обрабатываться отдельно от запросов формата text.

В итоге, в проекте были использованы следующие методы Telegram-API:

  1. /getMe - получение текущей информации о боте.

  2. /sendText - отправка текстового сообщения с callback-полями.

  3. /sendDocument, /sendVideo, /sendImage (и аналогичные get-методы) для обработки файлов документов, картинок и видео (использовано для обработок файлов подарка пользователям).

  4. /copyMessage (/copyMessages) - для пересылки сообщений рассылки / начала (конца) конкурса.

Важно: при работе с изображениями Telegram считает, что несколько медиа в альбоме - это несколько различных сообщений, объединённые общим тэгом.

Данный бот является своего рода «конкурс-ботом» с достаточно расширенным функционалом и возможностью подведения аналитики в разрезе проводимых ранее конкурсов. Автоматизация проведения конкурсов является максимально возможной, то есть администратору канала в Telegram нужно лишь в начале задать необходимые для подведения статистики данные. Помимо своей основной цели, бот собирает данные зарегистрированных в нём пользователей для возможной отправки им рассылок от своего лица в будущем. Интерактивно доступен функционал изменения сообщения приветствия бота, настройка файла подарка новым пользователем с программным контролем факта получения подарка, а также задание и изменение сообщения пользователю о получении подарка, которое всплывает совместно с текстом приветствия. Оговорённые выше функции доступны из приложения Telegram с любого устройства, дополнительно имеется возможность просмотра аналитики в разрезе конкурсов и каналов, списка зарегистрированных пользователей, администраторов бота и детальной информации по каждому конкурсу из приложения 1С:Предприятие, доступ к которому осуществляется по специальной ссылке в браузере. Инструменты управления ботом могут быть использованы для нескольких Telegram-каналов или обсуждений. Единственное, что должно их объединять – формально общий владелец и список администраторов, так как подведение аналитики является совместным для всех каналов.

Информация для пользователя / клиента представлена в следующем файле. В нем подробно описан функционал, который предоставляет конкурс-бот.

Справка по_использованию Telegram бота.pdf


Основные приёмы разработки.

При создании Telegram-бота использовался метод /setWebhook, который позволяет получать данные сообщений сразу при их отправке (вместо /getFile). Метод /setWebhook дополняется параметрами

  • update_id, message, callback_query, channel_post, inline_query, message_reaction

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

Текст при приёме переводится в формат JSON (платформы 1С), что позволяет обращаться отдельным полям сообщения. На анализе содержимого полей JSON и основан алгоритм работы Telegram-бота. Предварительно анализу выполняется контроль формата сообщения, ведь запросы-http форматов callback и inline должны обрабатываться отдельно от запросов формата text.

В итоге, в проекте были использованы следующие методы Telegram-API:

  1. /getMe - получение текущей информации о боте.

  2. /sendText - отправка текстового сообщения с callback-полями.

  3. /sendDocument, /sendVideo, /sendImage (и аналогичные get-методы) для обработки файлов документов, картинок и видео (использовано для обработок файлов подарка пользователям).

  4. /copyMessage (/copyMessages) - для пересылки сообщений рассылки / начала (конца) конкурса.

Важно: при работе с изображениями Telegram считает, что несколько медиа в альбоме - это несколько различных сообщений, объединённые общим тэгом.

В дополнение к основным приёмам разработки прилагаю выгрузку информационной базы 1С:Предприятие 8.3.
BotManager v1.dt


Публикация информационной базы 1С:Предприятие 8.3 с ботом на веб-сервере через Apache.

Алгоритм публикации бота вполне стандартный, за исключением момента с регистрацией бота в информационной базе. Дело в том, что при использовании ролей пользователей в 1С бот не сможет зайти в ИБ под паролем. В связи с этим, возникает необходимость регистрации анонимной публикации, под которой должен заходить бот. Для этого нужно скопировать текущую информационную базу с предварительно сформированным файлом default.vrd (создаётся при публикации основной базы на сервере Apache24), изменить путь на путь к основной информационной базе, а в качестве идентификатора входа использовать &quiot, куда не будет ничего подставляться. Пользователю Bot доверим лишь два метода-http: send и get, в результате чего человек, входящий от пользователя Bot не сможет попасть в ИБ, а бот выполнит свою работу в должной степени. В conf/httpd.conf необходимо вставить код для публикации анонимной базы, чтобы предоставить возможность боту обращаться по указанному адресу.

В дополнении прилагаю архив с ИБ и алгоритм его активации:

  1. Закинуть папку с базой на диск.

  2. Из текстового файла "Код для httpd" закинуть всё в conf/httpd.conf.

Изменить пути в коде на [Путь к базе]/TG-ChatBot/Anon-TG-ChatBot_Directory
И [Путь к базе]/TG-ChatBot/Anon-TG-ChatBot_Directory/default.vrd

Изменить пути в коде на [Путь к базе]/TG-ChatBot/TG-ChatBot_Directory
И [Путь к базе]/TG-ChatBot/TG-ChatBot_Directory/default.vrd

  1. В default.vrd в обоих файлах изменить путь к основной базе
    [Путь к базе]\TG-ChatBot

  2. В 1С пользователь Administrator, пароль nqROGWc6IAdmin

    4.1 Администрирование → Данные бота (Сервис) → URL WEB-Сервера
    Изменить url самого сервера с моего на ваш.

    4.2 Администрирование → Данные бота (Сервис) → Путь файла подарка
    Изменить путь сохранения файлов подарка пользователям.
    [Путь к базе]\TG-ChatBot\Document

    4.3 Администрирование → Установить WebHook → URL
    Проверить, что URL из пункта 4.1 попал на  форму

    4.4 Запустить обработку "Установить WebHook"
    Результат в окне ответа должен быть {"ok":true,"result":true,"description":"Webhook was set"}

    4.5 Запустить тонкий клиент или веб-клиент на сервере для активации регламентных заданий (в варианте файловой ИБ)



Сделайте заказ сейчас!

И получите в подарок беплатную консультацию по автоматизации вашего бизнеса и скидку на проект 5%!

Я согласен на обработку персональных данных 

 Я согласен с условиями пользовательского соглашения

Сделайте заказ сейчас!

И получите в подарок беплатную консультацию по автоматизации вашего бизнеса и скидку на проект 5%!

Я согласен на обработку персональных данных

Я согласен с условиями пользовательского соглашения

Запрос оптовых цен

Оставьте контактные данные и мы расскажем Вам о наших оптовых ценах

Логин:

Пароль:

 

Забыли свой пароль?

На указанный в форме e-mail придет запрос на подтверждение регистрации.

Логин (мин. 3 символа):*

Адрес e-mail:*

Пароль:*

Подтверждение пароля:*

Имя:*

Телефон:*

Защита от автоматической регистрации

CAPTCHA

Введите слово на картинке:*

Пароль должен быть не менее 6 символов длиной.

*Поля, обязательные для заполнения.

/articles/konkurs-bot-telegram-na-1s-predpriyatie-8-3/

Заказ в 1 клик

И получите в подарок беплатную консультацию по автоматизации вашего бизнеса и скидку на проект 5%!

Я согласен на обработку персональных данных 

Я согласен с условиями пользовательского соглашения

+
Ваш город?