Перейти к содержанию
Innovialabs

Что такое inline-режим Telegram-ботов и как его применить

Основы3 мин

Коротко

Inline-режим позволяет вызвать бота в любом чате, набрав @имя_бота и запрос: бот возвращает список результатов, а пользователь отправляет выбранный в текущий чат — так удобно делиться товарами, статьями и ссылками.

Как работает inline-режим

Inline-режим — это способ пользоваться ботом, не открывая чат с ним. Пользователь в любом диалоге, группе или канале набирает в поле ввода @имя_бота и текст запроса, например @shopbot кроссовки. Над клавиатурой появляется список результатов, и выбранный результат отправляется в текущий чат с пометкой «via @имя_бота».

Ключевые особенности:

  • боту не нужно быть участником чата, где его вызвали;
  • бот не видит переписку — только текст запроса и данные о пользователе;
  • сообщение отправляет сам пользователь, поэтому собеседники видят его от его имени.

Как это устроено технически

  1. Режим включается в BotFather командой /setinline, там же задаётся подсказка-плейсхолдер.
  2. Когда пользователь печатает запрос, бот получает обновление inline_query: текст запроса, offset для пагинации и, как правило, тип чата, где идёт поиск.
  3. Бот отвечает методом answerInlineQuery, передавая до 50 результатов за раз.
  4. Если нужно знать, какой результат выбрали, включите /setinlinefeedback — тогда приходит обновление chosen_inline_result.

Полезные параметры ответа:

  • cache_time — сколько секунд Telegram кеширует результаты на своей стороне;
  • is_personal — кешировать отдельно для каждого пользователя, если выдача персональная;
  • next_offset — подгрузка следующей порции при прокрутке;
  • button — кнопка над результатами, которая открывает личный чат с ботом или Mini App, например чтобы авторизоваться.

Типы результатов

ТипЧто отправляется
Articleтекстовое сообщение, часто с превью и кнопками
Photo, GIF, Videoмедиа по ссылке или уже загруженное в Telegram
Audio, Voice, Documentаудио, голосовое, файл
Location, Venueточка на карте или место с адресом
Contactкарточка контакта
Gameигра, зарегистрированная у бота

Для медиа есть «кешированные» варианты: они используют file_id уже загруженного в Telegram файла, что быстрее и надёжнее внешних ссылок. К любому результату можно прикрепить inline-клавиатуру, например кнопку «Открыть в магазине».

Где это полезно бизнесу

  • Поделиться товаром. Покупатель ищет товар через @shopbot, отправляет карточку с фото и ценой другу или в семейный чат, а кнопка ведёт в бота или Mini App для заказа.
  • База знаний и поддержка. Сотрудник поддержки вставляет готовый ответ или ссылку на инструкцию прямо в диалог с клиентом.
  • Реферальные ссылки и промокоды. Пользователь отправляет персональное приглашение в любой чат.
  • Подбор контента. Статьи, рецепты, расписание, курсы валют — всё, что люди обсуждают в переписке.
  • Совместные решения. Отправка опроса, слота для записи или адреса встречи в групповой чат.

Частые ошибки

  • Медленный ответ. Пользователь ждёт результатов при каждом наборе символа. Ищите по индексу, а не перебором, и не делайте тяжёлых запросов к внешним API на каждый символ.
  • Пустой запрос без выдачи. Когда пользователь набрал только @имя_бота, покажите популярное или последние позиции.
  • Неверный кеш. Персональные цены или данные аккаунта без is_personal могут попасть к другим пользователям из кеша.
  • Кнопки как в обычном сообщении. У inline-сообщения нет привычного message, в callback query приходит inline_message_id, и редактировать его нужно через него.

Частые вопросы

Нет. Inline-режим работает в любом чате, где пользователь может отправлять сообщения, если администраторы группы не запретили сообщения через ботов.

Поможем с этим

Если хотите не разбираться самим, а получить результат — этим мы занимаемся каждый день.

Обсудить проект

Читайте также

Есть идея или задача? Расскажите нам

Ответим в течение рабочего дня и предложим решение. Консультация бесплатная.