Режим inline в Telegram
Что такое режим inline в Telegram?
Помимо того, что бот может отвечать на любые запросы напрямую в личном чате или группе, используя онлайн-режим, вы можете глобально обращаться к боту в чате, группе или канале.
Чтобы обратиться к боту, у которого включён онлайн-режим, просто введите @*имя бота* в Секция сообщения .
Самый яркий и популярный пример бота, работающего онлайн, — @gif, с помощью которого можно выбирать и отправлять GIF-изображения:

Бот @gif будет работать в любом чате.
Как включить режим inline?
Чтобы бот работал в офлайн-режиме, нужно включить эту опцию в настройках бота в BotFather.
Выберите нужного бота и перейдите в Bot Settings.

Затем выберите Режим inline

Здесь нужно включить офлайн-режим, если он не включён.

Как изменить placeholder?
При желании вы можете изменить placeholder, который отображается перед вводом поискового запроса. По умолчанию это Поиск…

Чтобы изменить его, нажмите Изменить placeholder inline :

Укажите точное содержимое placeholder.

Как настроить результаты вывода
После нажатия на вариант из списка в режиме inline будет отправлено сообщение, которое указано в заголовке выбранной опции, и вы можете настроить реакцию в воронке на это значение.
Чтобы указать данные для вывода в режиме inline, нужно задать переменную inline_bot. В режиме inline поиск значений в переменной inline_bot происходит практически в реальном времени.
Данные в переменной можно задать тремя способами. Рассмотрим от самого простого до максимальных настроек.
Массив с текстовыми данными
Например, поиск будет выполняться по массиву товаров.

Переменная inline_bot задаётся в настройках проекта. Поиск совпадает с любым вариантом массива, который содержит введённую фразу.


Когда вы вводите '@name__of your__bot' и начальные буквы команд, открывается меню со значениями, которые вы указали в переменной проекта.
После нажатия на нужный элемент боту будет отправлено сообщение от пользователя, на которое вы можете настроить реакцию в боте.
Конфигурация блока выглядит так:

Пример данных:
["Молоко", "Хлеб", "Паста", "Шоколад", "Яйца", "Масло", "Булочка", "Чай", "Овощи", "Фрукты"]
Вывод при отсутствии фильтрации
Вы можете задать пустой ключ и назначить ему массив значений в нижнем регистре или массив словарей. Бот обратится к словарю через пустой ключ и выведет кнопки со значениями из назначенного массива.
Inline-кнопка с указанным значением поиска
Обратите внимание!
Inline-кнопки в Telegram — это не callback.
Если вам нужно получать callback, то прочитайте про callback-кнопки в Telegram.
Кнопка работает только в Telegram.
Чтобы задать поисковую фразу, добавьте параметр inline_query к inline-кнопке со значением, которое автоматически подставляется в запрос.
Рекомендуется использовать этот вариант для офлайн-режима, так как это позволит избежать ошибок и работать быстрее.
Например, добавьте три кнопки, которые соответствуют примеру из предыдущей главы.
[{"line":0,"index_in_line":0,"text":"Показать меню","type":"inline","inline_query":"menu"},{"line":0,"index_in_line":1,"text":"Статьи","type":"inline","inline_query":"posts"},{"line":2,"index_in_line":0,"text":"Список товаров","type":"inline","inline_query":"products"}]

Когда вы нажмёте на кнопку, например, Статьи, будет показан найденный список кнопок (при добавлении вы указали для этой кнопки "inline_query":"posts"):

Варианты берутся из заданной переменной, как описано выше в "Словарь со списком" :

Примечания
Переменную inline_bot можно задавать не только в общих переменных, но и как простую переменную, однако в этом случае её значение должно быть заключено в одинарные кавычки.
Пример в поле калькулятора:
inline_bot = '["Молоко", "Хлеб", "Паста", "Шоколад", "Яйца", "Масло", "Слоёное тесто", "Чай", "Овощи", "Фрукты", "#{aa}"]'
Также можно передавать любое значение в качестве переменной для более гибкой настройки.
Например, простой вариант в массиве:

Последнее обновление