⚙️Инструкция по настройке Календаря
Добавить в сценарий блок HTTP-запрос

Настройки блока HTTP-запрос

Копируйте фрагменты ниже и вставляйте в настройках своего блока HTTP-запрос.
URL
https://maxonline.ru/botjet/Calendar/v4/
Вы можете встретить в инструкциях ссылки с окончанием "v1" и другими. Это старые версии.
Метод : "POST".
Заголовки : нет
Body
x-www-form-urlencoded
Параметры запроса

token из BotFather
да
API token из BotFather. На картинке ниже указана глобальная переменная {{ token }}, в которой сохранен API token из BotFather. Имя переменной может быть любым, главное, чтобы в ней было нужное значение. Также можно в правой колонке указать само значение API token, без использования переменной. Проверьте, что имя Глобальной переменной и имя переменной в настройках этого параметра совпадают❗
{{ telegram_id }}
да
telegram-id контакта (пользователя чат-бота). Используется глобальная константа {{ telegram_id }}
{{$calendar_command}}
да
Управляющая команда. Используется локальная переменная {{$calendar_command}}. Переменная получает свое значение в графе "Записать ответ в пользовательскую переменную". Удаляется после каждого запроса.
{{$calendar_message_id}}
да
ID сообщения. Используется локальная переменная {{$calendar_message_id}}. Переменная получает свое значение в графе "Записать ответ json в переменные". Удаляется после выбора конкретной даты в календаре.
1
нет
Начиная с v2. Скрыть прошлое. Если добавлен и равен 1, запрещает показ прошедших дней, месяцев и годов. Кнопки прошедших дней будут пустыми и нажатие не приведет к действию.
hidres
1
нет
Начиная с v3. Скрыть результат. Если добавлен и равен 1, отключает вывод сообщения о выбранной дате после нажатия на кнопку дня. Сообщение с календарем исчезнет и произойдет переход в блок сценария, ID которого указан в JavaScript-коде
text
<текстовое сообщение> Например: "Выбери дату брони"
нет
Начиная с v3. Свое сообщение перед календарем. Если параметр не добавлен, то перед календарем будет показано стандартное сообщение: "2023 г. - выбери день:"
setdate
31.12.2023
нет
Начиная с v3. Задать дату, на которой должен открыться Календарь. Дата должна быть в формате ДД.ММ.ГГГГ, например 31.12.2023. Можно подставить переменную, в которой сохранена дата.
Календарь покажет месяц, в котором находится заданная дата.
lang
en
нет
Начиная с v3.1. Вывести календарь на английском. Если lang не указан или его значение "ru", календарь будет на русском. Другие языки не поддерживаются.
opendates
json-строка со списком дат
нет
Начиная с v4. Поставить метку ":" рядом с датами, указанными в json-строке. Вид JSON-строки для пометки дат
Вид JSON-строки для пометки дат
Json-строка должна содержать ключ "date" и значение даты в формате "ДД.ММ.ГГГГ", которую нужно пометить.
[
{
"date": "10.12.2024"
},
{
"date": "11.12.2024"
}
]
Json-строка может содержать другие элементы "ключ": "значение" внутри объектов { }. Это не влияет на работу ботжета. Важно: обязательно должно быть поле с ключом "date" и значением в виде даты.
Одинаковые значения поля "date" могут встречаться в нескольких объектах { }. Это не влияет на работу ботжета. Если определенная дата встречается в одном объекте { }, или в нескольких, она будет помечена в календаре.
Timeout
по-умолчанию
Отправлять в запросе данные контакта
❌ выключить
Записать ответ json в переменные
✅ включить
Соотношение переменных
result.message_id ➡ calendar_message_id

Обработать ответ с помощь JavaScript
✅ включить
Скопировать и вставить код:
var nextBlock=0,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(nextBlock),deleteContactVariable("calendar_command"),deleteContactVariable("calendar_message_id"),deleteContactVariable("opendates"))}deleteContactVariable("calendar_command");

Записать ответ в пользовательскую переменную
✅ включить
Имя переменной :
calendar_command
Повторный вопрос
✅ включить

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

Открой настройки блока сценария, которому должно быть передано управление после выбора даты в Календаре.
В самом низу панели настроек блока есть "ID ....". (смотри картинку ☝)
Скопируй цифры после ID. Только цифры!
В коде JavaScript найди в первой фразе "
var nextBlock=0
" вместо0
вставь скопированный ID блока.

❗ Важно. От блока HTTP-запрос не должно идти связей к следующим по сценарию блокам.
Настройка ботджета "Календарь" завершена.
🧑🏫ПоддержкаLast updated