Inline Mode
Inline Mode — это режим работы Telegram-бота, при котором пользователь может вызывать бота из любого чата (включая личные переписки, групповые и супергрупповые чаты) без необходимости переходить в диалог с ним напрямую. Для активации режима пользователь вводит в поле ввода сообщения имя пользователя бота (с символом @) и пробел, после чего бот предлагает варианты ответов на основе введённого текста. Inline Mode позволяет боту отправлять сообщения, изображения, аудио, видео, файлы, результаты поиска и другие типы контента от имени пользователя, который его вызвал.
История
Inline Mode был представлен компанией Telegram Messenger LLP (основанной Павлом и Николаем Дуровыми) в январе 2016 года в рамках обновления Telegram 3.12. Эта функция стала частью масштабной платформы Bot API 2.0, которая также включала поддержку клавиатур, платежей и игр. Изначально Inline Mode был доступен только для ограниченного числа ботов, но вскоре стал общедоступным для всех разработчиков, использующих Bot API. Внедрение Inline Mode значительно расширило возможности взаимодействия пользователей с ботами, позволив интегрировать их функционал в любой чат без необходимости добавлять бота как участника.
Принцип работы
Для использования Inline Mode бот должен быть активирован разработчиком через BotFather (официального бота Telegram для управления ботами). После включения режима бот начинает обрабатывать запросы, поступающие от пользователей, которые вводят @username_bot в строке ввода. Бот получает от серверов Telegram специальный объект InlineQuery, содержащий текст запроса, идентификатор пользователя и данные о местоположении (если разрешено). В ответ бот должен отправить массив объектов InlineQueryResult, каждый из которых представляет собой один вариант ответа (например, статью, изображение, аудиофайл или другой контент). Telegram отображает эти варианты в виде списка, из которого пользователь может выбрать подходящий. После выбора бот может либо отправить выбранный контент в чат, либо выполнить дополнительное действие (например, открыть веб-страницу или запустить игру).
Типы результатов
Telegram Bot API поддерживает более 20 типов результатов для Inline Mode, включая:
InlineQueryResultArticle— текстовое сообщение с возможностью добавления кнопок и превью.InlineQueryResultPhoto— изображение (JPEG, PNG, GIF).InlineQueryResultVideo— видеофайл (MP4, AVI и др.).InlineQueryResultAudio— аудиофайл (MP3, OGG и др.).InlineQueryResultVoice— голосовое сообщение.InlineQueryResultDocument— произвольный файл (PDF, DOCX, ZIP и др.).InlineQueryResultLocation— точка на карте с координатами.InlineQueryResultVenue— место (организация) с адресом и координатами.InlineQueryResultContact— контакт с именем, номером телефона и аватаром.InlineQueryResultGame— HTML5-игра, запускаемая через Telegram.InlineQueryResultCachedPhoto,InlineQueryResultCachedVideoи другие — результаты, использующие файлы, уже загруженные на серверы Telegram (для ускорения работы).
Каждый результат может содержать кнопки InlineKeyboardMarkup для выполнения действий (например, переход по ссылке или отправка команды).
Применение
Inline Mode широко используется для создания ботов, выполняющих функции поиска, перевода, генерации контента, проверки орфографии, получения информации и других операций. Ниже приведены примеры типичных сценариев использования.
Поисковые и справочные боты
Боты, предоставляющие доступ к базам данных, энциклопедиям, словарям или новостям. Пользователь вводит запрос, а бот возвращает релевантные результаты. Например, бот для поиска статей в Википедии (Wikipedia) или бот для проверки правописания (Grammarly). Такие боты позволяют быстро получать информацию без переключения между чатами.
Генерация контента
Боты, создающие изображения, текст, музыку или другие материалы на основе запроса. Например, бот для генерации мемов (Memebot) или бот для создания кастомных стикеров (StickerBot). Inline Mode позволяет пользователю сразу отправить сгенерированный контент в любой чат.
Инструменты для работы с файлами
Боты, конвертирующие файлы, сжимающие изображения, извлекающие текст из PDF или выполняющие другие операции с данными. Пользователь может загрузить файл в бот, получить результат и отправить его в чат без сохранения на устройстве.
Игры и развлечения
Боты, предлагающие игры, викторины, гадания или случайные факты. Например, бот для игры в «Крестики-нолики» или бот для получения случайных анекдотов. Inline Mode позволяет запускать игры в любом чате, не добавляя бота как участника.
Коммерческие и бизнес-приложения
Боты, используемые для заказа товаров, бронирования услуг, получения скидок или информации о компаниях. Например, бот для поиска авиабилетов (Aviasales) или бот для заказа пиццы (PizzaBot). Inline Mode упрощает взаимодействие клиента с сервисом, так как не требует перехода в отдельный чат.
Технические особенности
Ограничения
- Длина запроса: Максимальная длина строки запроса, передаваемой боту, составляет 512 символов (по состоянию на 2024 год).
- Количество результатов: Бот может вернуть до 50 результатов за один запрос, но Telegram отображает не более 10 вариантов одновременно (с возможностью прокрутки).
- Время ответа: Бот должен ответить на
InlineQueryв течение 30 секунд, иначе запрос считается необработанным. - Кэширование: Telegram кэширует результаты для одинаковых запросов от одного пользователя, чтобы уменьшить нагрузку на серверы бота. Разработчики могут задать время жизни кэша (параметр
cache_time). - Местоположение: Если пользователь разрешил доступ к геоданным, бот получает объект
Locationс координатами, что позволяет реализовывать геозависимые функции (например, поиск ближайших кафе).
Безопасность
- Inline Mode не требует от пользователя предоставления боту прав на чтение сообщений чата. Бот получает только текст запроса и данные о пользователе (идентификатор, имя, язык).
- Разработчики должны соблюдать политику конфиденциальности Telegram, не передавая данные третьим лицам без согласия пользователя.
- Telegram не позволяет ботам в Inline Mode отправлять сообщения от имени пользователя без его явного выбора (пользователь должен нажать на результат).
Примеры популярных ботов с Inline Mode
- @bold — бот для форматирования текста (жирный, курсив, зачёркнутый, моноширинный) в любом чате.
- @gif — бот для поиска и отправки GIF-анимаций (ранее использовался GIPHY, но после санкций в РФ доступ ограничен).
- @wiki — бот для поиска статей в Википедии на разных языках.
- @sticker — бот для создания и отправки кастомных стикеров.
- @music — бот для поиска и отправки аудиофайлов (ранее использовался для поиска музыки, но в РФ доступ ограничен из-за блокировок).
- @youtube — бот для поиска и отправки видео с YouTube (в РФ доступ ограничен из-за замедления работы YouTube).
Критика и ограничения
Несмотря на удобство, Inline Mode имеет ряд недостатков. Во-первых, для использования режима пользователь должен помнить или знать точное имя пользователя бота (например, @gif), что может быть неочевидно для новых пользователей. Во-вторых, боты в Inline Mode не могут отправлять сообщения, содержащие команды (например, /start), что ограничивает их функционал. В-третьих, некоторые боты злоупотребляют режимом, возвращая нерелевантные или рекламные результаты, что снижает качество пользовательского опыта. Telegram борется с этим, вводя ограничения на количество результатов и требуя от разработчиков соблюдения правил платформы.
Сравнение с другими режимами
Telegram Bot API поддерживает два основных режима работы: Inline Mode и Chat Mode (обычный режим, когда бот является участником чата). В отличие от Chat Mode, Inline Mode не требует добавления бота в чат, что снижает нагрузку на серверы и упрощает взаимодействие. Однако Chat Mode позволяет боту получать все сообщения чата (если он является администратором), что даёт больше возможностей для модерации и автоматизации. Inline Mode, напротив, предназначен для одноразовых запросов и не поддерживает длительные диалоги.
Будущее развитие
Telegram продолжает развивать Bot API, и Inline Mode может получить новые возможности в будущих обновлениях. В 2023 году была добавлена поддержка InlineQueryResultsButton — кнопки, которая отображается над списком результатов и позволяет выполнять дополнительные действия (например, открыть веб-страницу). Также ожидается улучшение кэширования и увеличение лимитов на количество результатов. В контексте России, где Telegram остаётся одной из самых популярных платформ для общения (по данным Mediascope на 2024 год, аудитория Telegram в РФ превышает 70 миллионов пользователей), Inline Mode продолжает активно использоваться как разработчиками, так и пользователями.
Источники
- Официальная документация Telegram Bot API (core.telegram.org/bots/api)
- Статья «Telegram Bot API 2.0: Inline Bots» на официальном блоге Telegram (telegram.org/blog/inline-bots)
- Mediascope: «Аудитория мессенджеров в России 2024» (mediascope.net)
- Telegram Bot API Changelog (core.telegram.org/bots/api-changelog)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →