Учимся писать ботов: Пишем бота с альтернативным взаимодействием (Inline боты, встраиваемые боты). Часть 2.

Учимся писать ботов: Пишем бота с альтернативным взаимодействием (Inline боты, встраиваемые боты). Часть 2.

t.me/PishemBota

Всем привет! Сегодня я продолжаю серию постов про написание ботов для Telegram.

В этот раз я продолжаю предыдущий пост про альтернативных ботов.

Типы результатов (InlineQueryResult)

Согласно документации - есть такие типы результатов:

Также есть кэшированные типы результатов - но о них в другой раз :)

Шаблон для всех типов результатов

Для этого я взял код из прошлого поста:

@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="<во что превратится сообщение юзера после нажатия>"))


В следующем посте мы попробуем сделать нашего первого бота на основе этой информации :)

Report Page