Инлайн-боты
Помимо отправки команд боту напрямую, пользователи могут использовать вашего бота через инлайн-запросы. Если режим инлайн запросов включён, пользователи смогут обращаться к вашему боту, написав его юзернейм и ключевое слово в поле отправки сообщений в любом чате, группе или канале. Таким образом происходит запрос к боту без непосредственной отправки ему сообщений.
Чтобы включить эту возможность, отправьте команду /setinline пользователю @BotFather и укажите текст-подсказку, который будет отображаться в поле ввода при наборе пользователем имени вашего бота.
Результаты инлайн-запросов
Встроенные боты могут отображать любые данные, доступные в Telegram (19 штук): фильмы, аудиозаписи, стикеры и т. д.
Приложения Telegram могут отображать встроенные результаты как с горизонтальной, так и с вертикальной прокруткой, в зависимости от типа результата.
Как только пользователь нажмёт на предложенный результат, он сразу же отправится в чат, а поле ввода будет очищено.
Переключение между инлайн-режимом и чатом
Некоторым ботам необходим процесс предварительной настройки — например, чтобы подключить какой-нибудь внешний аккаунт. Специально для этого была добавлена возможность быстрого переключения между личным чатом и встроенным режимом.
Ваш бот может отобразить кнопку перехода в личный чат над результатами запроса или вместо них. После перехода и выполнения настроек возможен переход обратно в тот чат, откуда пришёл пользователь с помощью встроенной клавиатуры и метода switch_inline_query
Пример
@youtube — Предлагает войти в аккаунт YouTube, чтобы отобразить персонализированные результаты.
Геоориентированные сервисы
Инлайн-боты могут запрашивать у пользователей их геолокацию. Для включения этой возможности отправьте @BotFather команду /setinlinegeo . После этого ваш бот будет спрашивать у пользователя разрешение на использование его местоположения при каждом запросе во встроенном режиме.
Пример
@foursquare — этот бот будет запрашивать местоположение пользователя для поиска мест поблизости.
Вирусное распространение
Сообщения, отправленные с помощью вашего бота, будут содержать пометку с его именем пользователя рядом с именем отправителя.
Когда пользователь нажимает на юзернейм бота в заголовке сообщения, оно автоматически копируется в поле ввода сообщения. Ввод символа @ в поле ввода сообщения вызовет список недавно использованных ботов.
Сбор статистики
Чтобы узнать, какие именно результаты из предоставленных вашим ботом предложений пользователи отправляют чаще всего, отправьте боту @Botfather команду /setinlinefeedback . После этого вы будете получать обновления с результатами, выбранными вашими пользователями.
Обратите внимание: в популярных ботах эта функция может вызвать существенную нагрузку из-за кэширования (см. параметр cache_time в answerInlineQuery). Чтобы избежать этого, рекомендуется устанавливать настройку вероятности в 1/10, 1/100 или 1/1000 от результатов.
Примеры инлайн-ботов
Вот небольшой список ботов, работающих в инлайн-режиме. Попробуйте:
-
– поиск GIF – поиск видео – поиск изображений от Яндекс – поиск изображений от Bing – поиск статей в Wikipedia – поиск фильмов в IMDB – форматирование текста
Сайт про Telegram на русском (неофициальный).
Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.
Создание Inline-бота, python-telegram-bot в Python.
Базовый пример Telegram бота с режимом встроенных запросов.
В материале рассматривается базовый пример создания Telegram бота на основе библиотеке python-telegram-bot , использующего режим встроенных запросов Телеграмм, а так же обработчика InlineQueryHandler для распознавания этих встроенных запросов.
Пример снабжен подробными комментариями. Сначала определяются несколько функций обработчика. Затем эти функции передаются Диспетчеру и регистрируются в соответствующих местах. Затем бот запускается и работает до тех пор, пока пользователь в командной строке не нажмет Ctrl-C.
Внимание! Изначально, созданный вами бот в @BotFather не поддерживает режим встроенных запросов Телеграмм. Для включения этого режима необходимо снова подключиться к @BotFather , и используя команду /setinline переключить созданного бота во встроенный режим запросов.
В примере ниже бот применяет различные текстовые преобразования к вводимым сообщениям, которые пользователь может выбрать из так называемого подменю UPPER, BOLD, ITALIC.
Использование: в используемом вами клиенте Телеграмм наберите @логин_бота и через пробел какое либо сообщение. Далее появится контекстное меню с выбором преобразования сообщения: UPPER, BOLD, ITALIC. Выберете требуемое преобразование.
Inline Bots
Beyond sending commands in private messages or groups, users can interact with your bot via inline queries. If inline queries are enabled, users can call your bot by typing its username and a query in the text input field in any chat. The query is sent to your bot in an update. This way, people can request content from your bot in any of their chats, groups, or channels without sending any messages at all.
To enable this option, send the /setinline command to @BotFather and provide the placeholder text that the user will see in the input field after typing your bot’s name.
See the Bot API Manual for the relevant methods and objects.
Inline results
Inline bots support all types of content available in Telegram (20 in all). They are capable of sending stickers, videos, music, locations, documents and more.
Clients can display the results with vertical or horizontal scrolling, depending on the type of content:
As soon as the user taps on an item, it's immediately sent to the recipient, and the input field is cleared.
Switching inline/PM modes
Some inline bots can benefit from an initial setup process, like connecting them to an account on an external service (e.g., YouTube). We've added an easy way of switching between the private chat with a bot and whatever chat the user wants to share inline results in.
You can display a special 'Switch to PM' button above the inline results (or instead of them). This button will open a private chat with the bot and pass a parameter of your choosing, so that you can prompt the user for the relevant setup actions. Once done, you can use an inline keyboard with a switch_inline_query button to send the user back to the original chat.
Sample bots
@youtube – Shows a 'Sign in to YouTube' button, then suggests personalized results.
Location-based results
Inline bots can request location data from their users. Use the /setinlinegeo command with @BotFather to enable this. Your bot will ask the user for permission to access their location whenever they send an inline request.
Sample bot
@foursquare – This bot will ask for permission to access the user's location, then provide geo-targeted results.
Spreading virally
Messages sent with the help of your bot will show its username next to the sender's name.
When a user taps on the bot username in the message header, the mention is automatically inserted into the input field. Entering the @ symbol in the input field brings up a list of suggestions, featuring recently used inline bots.
Collecting feedback
To know which of the provided results your users are sending to their chat partners, send @Botfather the /setinlinefeedback command. With this enabled, you will receive updates on the results chosen by your users.
Please note that this can create load issues for popular bots – you may receive more results than actual requests due to caching (see the cache_time parameter in answerInlineQuery). For these cases, we recommend adjusting the probability setting to receive 1/10, 1/100 or 1/1000 of the results.
Inline bot samples
Here are some sample inline bots, in case you’re curious to see one in action. Try any of these:
@gif – GIF search
@vid – Video search
@pic – Yandex image search
@bing – Bing image search
@wiki – Wikipedia search
@imdb – IMDB search
@bold – Make bold, italic or fixed sys text
NEW
@youtube — Connect your account for personalized results
@music — Search and send classical music
@foursquare – Find and send venue addresses
@sticker – Find and send stickers based on emoji
Лайфхак: как отправлять видеостикеры в Telegram
Меньше 1% пользователей знает, что кроме стикеров и гифок Telegram позволяет быстро найти и отправить видео : мемы, приколы, цитаты, фрагменты из фильмов и т.д., не выходя из чата.
Рассказываю как это сделать.
Иногда хочется добавить разнообразия в общение, чем-то заменить скучные тексты, вспомнить известный момент в фильме или процитировать персонажа.
«Точно подобрать мем, в тему и к месту, — искусство». Неизвестный автор
- Откройте любой чат или группу.
- Напишите @viavidbot и поставьте пробел. Появится список случайных видео с описанием. Можно нажать на любое видео, и оно отправится в этот чат.
- Через пробел можно написать слова или эмодзи для поиска подходящего видео.
Inline mode — режим встроенного запроса, через который можно найти информацию, отправить файл или контент, не покидая чат. Не надо открывать сайты, гуглить или переходить в личку с ботом. Можно просто вызвать бота inline.
Кроме видео можно отправлять картинки, гифки, файлы, аудио, тексты.
Вот популярные Inline боты:
- @gif — отправить гифки
- @vid — отправить видео из Youtube с превью и ссылкой
- @pic — отправить картинки из Яндекса
- @bing — отправить картинки из Bing
- @wiki — отправить ссылку на статью из Wikipedia
- @imdb — найти фильм из IMDB
- @bold — отформатировать отправляемый текст
- @music — отправить классическую музыку
- @sticker — найти стикер по эмодзи
- @iLyricsbot — найти текст песни
- @like — создать голосование с кнопками «За» и «Против», показывает проценты
- @memingbot — отправить мемы со своим текстом
Какие ещё есть inline боты?
Пользователи пока не привыкли к inline ботам, но со временем они станут популярными.
Представьте, если прямо в диалоге бот будет подтягивать аналитику из базы данных и CRM. Или в мультиязычной группе мой текст на русском языке бот налету переведёт на английский.
Какие ещё есть идеи для inline ботов?
Обратите внимание на кнопку «с помощью …» (via) над видео — оно означает, что контент отправлен через inline режим. Если нажать на нее, то сразу открывается inline поиск, например, @viavidbot.
Кстати, после взаимодействия с ботом он сохраняется в кэше и заново печатать название не нужно. Достаточно набрать символ @ и появится список сохраненных inline ботов. Для удаления бота из кэша нужно свайпнуть влево.
А что с комментариями?
В комментариях к постам использование ботов ограничено. Есть 2 способа отправить видео стикер:
1. Как ответ (reply) на другое сообщение. Если сообщений нет, то можно написать что-нибудь, отправить видео как ответ на своё сообщение и удалить первое сообщение.
2. В публичной группе @viavidchat найти видео или самому отправить видео через inline, скопировать ссылку на это видео и вставить как комментарий. Кстати, таким способом можно вставлять видео на многие сайты.