Ботджет "Календарь" 📆 для Leadtex
Максим НоскоСервисы MAXONLINE.RU
БотДжеты (BotJets) - готовые модули для Telegram-ботов со встроенной функциональностью и API.

Ботджет "Календарь" позволяет вывести календарь в Telegram-боте на конструкторе Leadtex с днями-кнопками и сохранить дату, которую выбрал пользователь, для использовании в других блоках сценария.

Что может ботджет "Календарь"?
- вывод календаря в чат-бот;
- листание месяцев вперед и назад;
- смена года;
- выбор конкретной даты.
Результат выбора даты:
- в чат выводится сообщение: "Выбрана дата: 08.06.2023";
- выбранная дата сохраняется в локальную переменную "calendar_Date";
- управление в сценарии автоматически передается блоку, id которого будет указан в настройках блока HTTP.
Инструкция по настройке
Добавить в сценарий блок HTTP-запрос

Настройки блока HTTP-запрос
Копируйте значения из строк ниже и вставляйте в настройки своего блока HTTP.
URL : https://maxonline.ru/botjet/Calendar/v1/
Метод : "POST".
Заголовки : нет

Body : x-www-form-urlencoded
Параметры запроса
❗ Важно точно прописать имена параметров запроса (левая колонка) и имена переменных - значений параметров (правая колонка).
token
параметр для отправки API token из BotFather. На картинке ниже указана глобальная переменная {{ token }}, в которой сохранен API token. Имя переменной может быть любым, главное, чтобы в ней было нужное значение. Также можно в правой колонке указать само значение API token, без использования переменной.
chat_id = {{ telegram_id }}
telegram-id контакта (пользователя чат-бота). Используется глобальная константа {{ telegram_id }}
command = {{$calendar_command}}
управляющие команды ботджету. Используется локальная переменная {{$calendar_command}}. Переменная получает свое значение в графе "Записать ответ в пользовательскую переменную". Удаляется после каждого запроса.
messid = {{$calendar_message_id}}
id сообщения. Используется локальная переменная {{$calendar_message_id}}. Переменная получает свое значение в графе "Записать ответ json в переменные". Удаляется после выбора конкретной даты в календаре.

Timeout : по-умолчанию
Записать ответ json в переменные включить
Соотношение переменных : result.message_id ➡ calendar_message_id

Обработать ответ с помощь JavaScript : включить
Скопировать и вставить код:
var jsCommand=getContactVariable("calendar_command");if(jsCommand){var jsCompareResult=jsCommand.match(/^\d{2,2}\.\d{2,2}\.\d{4,4}$/);jsCompareResult&&(setContactVariable("calendar_Date",jsCommand),goToBlock(),deleteContactVariable("calendar_command"),deleteContactVariable("calendar_message_id"))}deleteContactVariable("calendar_command");
После вставки код будет в одну строку - это нормально.

Записать ответ в пользовательскую переменную : включить
Имя переменной : calendar_command
должно совпадать с именем переменной в 3 строке раздела "Body".
Повторный вопрос : включить

Переход на блок сценария после выбора даты

- Откройте настройки блока сценария, которому должно быть передано управление после выбора даты в Календаре.
- В самом низу панели настроек следующего блока есть "ID ....".
- Скопируйте цифры после ID. Только цифры!
- В коде JavaScript найдите фразу "goToBlock()". Между скобками вставьте скопированный ID следующего блока.

❗ Важно. От блока HTTP-запрос не должно идти связей к следующим по сценарию блокам.
Группа Телеграм для вопросов и поддержки: https://t.me/botjets