Перед тем, как что-то делать самим, неплохо посмотреть, что можно вообще делать. Практика показывает, что далеко не все даже опытные телеграмщики знакомы с режимом встроенных (inline) запросов. Для примера можно посмотреть Durger King, но предлагаю нечто более интересное и нестандартное - Rudiskbot.
Rudiskbot - это бот магазина видеоигр. После старта (подписки на бота) в ленте появляется пара сообщений.
Зачем нужно второе сообщение? При помощи одного сообщения нельзя установить две клавиатуры - под сообщением и пользовательскую.
Для простоты введём в чате:
@rudiskbot игра
В процессе ввода срабатывает автозаполнение и отображается список найденных игр.
Помимо списка можно включить отображение найденных товаров в виде галереи
У разработчиков ботов часто возникает вопрос, как в режиме галереи выводить надписи? Это недоступно. Суть режима галереи как раз и состоит в отображении только изображений.
После выбора товара из списка в ленте создаётся карточка товара с кнопками.
Две кнопки слева загружают в карточку описание и следующую фотографию (если их больше одной), лупа - новый поиск, зелёная книга - сообщение с каталогом.
Что тут и где - нужно разбираться, но PS5 нашел. Удобно то, что после нажатия на кнопку поиск выполняется сразу и ничего не нужно вводить:
Введём слеш / и посмотрим, что с доступными командами. Анонс, помощь и купон на скидку. По кнопке Меню открывается этот же список зарегистрированных команд.
Суть персонального чата состоит в отображении диалога "вопрос-ответ". Но иногда возникают задачи, в которых это не требуется. Как что-то отправить боту без создания кучи ненужных сообщений и ответов в чате? Например, нам нужно сделать калькулятор.
Отправить сообщение боту без отображения в чате можно либо при помощи встроенного запроса, когда результат выводится во всплывающем меню, при нажатии на встроенную кнопку (под сообщением) или путём вызова мини-приложения.
Если сообщение вводится через поле ввода чата или при нажатии на кнопку пользовательской клавиатуры, то оно в любом случае отобразится в чате и убрать его можно будет только удалением сообщения. Сообщение можно не удалять, а обновлять. Так можно реализовать обучение языкам программирования JavaScript, PHP, Python и т.п. Ввод от пользователя будет удаляться, а результат интерпретации от бота - обновляться в одном и том же сообщении.
Что можно ещё придумать на базе встроенного запроса? Всё, что можно представить в виде списка, например, расписание занятий или мероприятий на неделю. Для этого можно использовать посты с закрепом, но преимущество встроенного запроса в том, что его можно выполнить из любого чата. Например, мы общаемся с кем-то, а по ходу дела посмотрели, какие мероприятия есть на сегодня, сколько стоят билеты, товар, какие появились новинки и т.д. Можно не только посмотреть, но и сразу переслать найденное собеседнику.
Введите в поле чата rudiskbot название товара.
Встроенный поиск с автозаполнением явно выигрывает у такой "простыни". Для каждой найденной позиции можно создать сообщение, но так себе вариант. Конкуренцию может составить мини-приложение, но не во всём.
Для вдохновения можно посмотреть ещё примеры ботов, но хочется уже что-то и запрограммировать.