Кейс: Бот с регистрацией и автоматическим оповещением в дни рождения пользователей.

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

Кейс: Бот с регистрацией и автоматическим оповещением в дни рождения пользователей.

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

Ознакомиться с примером мини-приложения можно здесь.

Автор: @RDGlessons

Разработка

Структура бота
Структура бота

Переменные

Откройте вкладку "Переменные" в вашем боте и добавьте следующие переменные:
- b_day - текстовая переменная.
- b_day_format - переменная с типом формула. В качестве формулы введите выражение: `DATE_FORMAT( b_day , "d.m.2025 9:00")`, где вместо 9:00 можете указать любое другое время (По UTC) уведомления с постом, в день дня рождения пользователя.

  • b_day - текстовая переменная.
  • b_day_format - переменная с типом формула. В качестве формулы введите выражение:
DATE_FORMAT({{b_day}}, "d.m.2025 9:00")

Вместо 9:00 можете указать любое другое время (По UTC) уведомления с постом, в день дня рождения пользователя.

Кейс: Бот с регистрацией и автоматическим оповещением в дни рождения пользователей.

Конструктор

Для разработки такой структуры нам потребуется всего 2 блока мини-приложения.

1. Создаём мини-приложение с произвольным названием, у меня оно будет называться "Регистрация дня рождения".
В него мы добавим блок формы ввода с запросом даты рождения и её записи:

Добавьте блок "Форма ввода", в качестве типа ввода выберите "Выбор даты".

Откройте дополнительные настройки, поставьте галочку возле пункта "Дублировать ответ в переменную" и укажите переменную b_day. Поставьте галочку у пункта "Обязательная форма" и уберите у "Повторное прохождение". По желанию можете добавить заголовок и описание блоку.

Ниже появится блок фиксированной клавиатуры, откройте созданную в блоке кнопку, задайте произвольный текст и цвет после чего выберите тип действия "Переход к Мини-Приложению" указав наше следующее мини-приложение с названием "Дата указана".

Кейс: Бот с регистрацией и автоматическим оповещением в дни рождения пользователей.

Откройте "Действия" данного мини-приложения и добавьте действие "Отправить запрос".
В качестве ссылки для запроса укажите адрес https://api.puzzlebot.top/?token=XXX&method=postSend, где вместо XXX будет токен из Входящих запросов вашего бота. Подробнее...
В качестве типа запроса можно указать GET, либо POST. Я буду использовать GET.
Добавьте следующие параметры в запрос (параметры состоят из ключей и значений соответственно):

  • chats_ids: private; Вместо private можно указать айди группы или канала, куда будет выслано поздравление.
  • type: message; Вместо message можно указать media, для того что-бы отправить любой медиа-файл (Необходимо добавить параметр file_id).
  • text: Можете указать любой произвольный текст, который будет выслан в день рождения пользователя.
  • pin_post: true; Можете указать false, если не хотите чтобы пост закреплялся.
  • date: {{b_day_format}}
Пример запроса
Пример запроса

2. Создайте мини-приложение с произвольным названием, в моём случае оно назвается "Дата указана". В нём вы можете добавить текст, который выйдет по указанию даты рождения. Я, например, добавил стикер и текст с благодарностью.

Вуаля, всё готово 🎉
Осталось только протестировать.

5
1
1
1 комментарий