Перейти до основного вмісту

Callback-запит

Callback-запит — це оновлення, яке Telegram надсилає боту, коли користувач натискає callback-кнопку на інлайн-клавіатурі. Оновлення містить рядок даних, який бот задав кнопці, і бот мусить на нього відповісти. Callback-кнопка, на відміну від кнопки з посиланням, не відкриває адресу: вона просить бота виконати дію.

Що містить callback-запит

Об’єкт Bot API під назвою CallbackQuery має унікальний ідентифікатор, користувача, який натиснув кнопку, і поле data з рядком, який бот прикріпив до цієї кнопки. Якщо кнопка стоїть на повідомленні, яке надіслав бот, оновлення також містить це повідомлення. Поле data — єдиний спосіб для бота дізнатися, яку кнопку натиснули, тому кожен рядок даних треба добирати уважно.

Ліміт 64 байти для даних кнопки

Поле callback_data інлайн-кнопки має містити від 1 до 64 байтів. Ліміт задано в байтах, а не в символах, тому кирилична літера в UTF-8 займає два байти, і короткий український чи російський напис швидко вичерпує запас. Не кладіть у рядок даних увесь запис. Зберігайте запис на сервері, а в кнопку кладіть короткий ключ, наприклад назву дії та числовий ідентифікатор.

Чому бот мусить відповісти

Після натискання callback-кнопки клієнт Telegram показує індикатор завантаження, доки бот не викличе метод answerCallbackQuery. Документація Bot API вимагає викликати його, навіть коли користувачеві не потрібне повідомлення. Метод приймає необов’язковий текст довжиною від 0 до 200 символів, прапорець show_alert, який показує сповіщення-вікно замість невеликого повідомлення вгорі чату, і cache_time, який за замовчуванням дорівнює 0 секунд.

Callback-кнопки та канали

Callback-запит надходить до бота, тому кнопці цього типу потрібен працюючий бот, який обробляє оновлення й зберігає власний стан. Кнопці, що лише відкриває сторінку, це не потрібно: використайте кнопку з посиланням, яка не надсилає боту жодного оновлення. Перевіряйте тип кожної кнопки, перш ніж додати її до запланованого допису, і тримайте токен бота в таємниці, бо будь-хто з токеном може читати оновлення цього бота.

Пов’язані функції

Застосуйте ці поняття на практиці

Автоматизуйте публікацію в Telegram за допомогою ШІ-контенту, оцінки якості та розумного планування.