Учимся писать ботов: Пишем бота с альтернативным взаимодействием (Inline боты, встраиваемые боты). Часть 2.
t.me/PishemBotaВсем привет! Сегодня я продолжаю серию постов про написание ботов для Telegram.
В этот раз я продолжаю предыдущий пост про альтернативных ботов.

Типы результатов (InlineQueryResult)
Согласно документации - есть такие типы результатов:
- InlineQueryResultArticle - обычная подсказка, рассмотрели в прошлом посте.
- InlineQueryResultAudio - аудио.
- InlineQueryResultContact - контакт.
- InlineQueryResultGame - игра.
- InlineQueryResultDocument - документ.
- InlineQueryResultGif - гифка.
- InlineQueryResultLocation - геопозиция.
- InlineQueryResultMpeg4Gif - видео, но как гифка.
- InlineQueryResultPhoto - фотография.
- InlineQueryResultVenue - место. кстати, можно с этим много чего полезного придумать :)
- InlineQueryResultVideo - видео.
- InlineQueryResultVoice - голосовое сообщение.
Также есть кэшированные типы результатов - но о них в другой раз :)
Шаблон для всех типов результатов
Для этого я взял код из прошлого поста:
@bot.inline_handler(func=lambda q: True)
def inlinehandler(q):
answer = types.InlineQueryResultArticle(
id='1', title="Название",
description="Описание",
input_message_content=types.InputTextMessageContent(
message_text="Test"))
bot.answer_inline_query(q.id, [answer])
И мы заменяем InlineQueryResultArticle на нужный нам тип, к примеру на такой:
answer = types.InlineQueryResultPhoto(
Дальше мы снова заходим в документацию и находим там нужный тип, берем оттуда параметры и приводим их в примерно такой формат (для примера тут photo):
answer = types.InlineQueryResultPhoto( # тут тип результата
id='1', title="<название>",
description="<Описание>",
photo_url="<юрл для фото>", thumb_url="<юрл для превью>", #осн.изм.
input_message_content=types.InputTextMessageContent(
message_text="<во что превратится сообщение юзера после нажатия>"))
А вот для gif:
answer = types.InlineQueryResultGif( # тут тип результата
id='1', title="<название>",
description="<Описание>",
gif_url="<юрл для гифки>", thumb_url="<юрл для превью>", #осн.изм.
input_message_content=types.InputTextMessageContent(
message_text="<во что превратится сообщение юзера после нажатия>"))
В следующем посте мы попробуем сделать нашего первого бота на основе этой информации :)