python telegram как отправить gif с помощью встроенной клавиатуры, когда пользователь нажал «Пуск» в моем боте?

#python #telegram #telegram-bot

#python #telegram #telegram-бот

Вопрос:

 from telegram.ext import Updater
from telegram.ext import CommandHandler, CallbackQueryHandler
from telegram import InlineKeyboardButton, InlineKeyboardMarkup

def start(bot, update):
  update.message.reply_text(main_menu_message(),
                            reply_markup=main_menu_keyboard())

def main_menu(bot, update):
  query = update.callback_query
  bot.edit_message_text(chat_id=query.message.chat_id,
                        message_id=query.message.message_id,
                        text=main_menu_message(),
                        reply_markup=main_menu_keyboard())

def first_menu(bot, update):
  query = update.callback_query
  bot.edit_message_text(chat_id=query.message.chat_id,
                        message_id=query.message.message_id,
                        text=first_menu_message(),
                        reply_markup=first_menu_keyboard())



def first_submenu(bot, update):
  pass

def second_submenu(bot, update):
  pass

def main_menu_keyboard():
  keyboard = [[InlineKeyboardButton('Option 1', callback_data='m1')],
              [InlineKeyboardButton('Option 2', callback_data='m2')],
              [InlineKeyboardButton('Option 3', callback_data='m3')],
              [InlineKeyboardButton('Option 4', callback_data='m4')],
              [InlineKeyboardButton('Option 5', callback_data='m5')],
              [InlineKeyboardButton('Option 6', callback_data='m6')],
              [InlineKeyboardButton('Option 7', callback_data='m7')],
              [InlineKeyboardButton('Option 8', callback_data='m8')]]
  return InlineKeyboardMarkup(keyboard)

def first_menu_keyboard():
  keyboard = [[InlineKeyboardButton('"U0001F602"', callback_data='m1_1', url='https://google.com')],
              [InlineKeyboardButton('Submenu 1-2', callback_data='m1_2')],
              [InlineKeyboardButton('Main menu', callback_data='main')]]
  return InlineKeyboardMarkup(keyboard)

def second_menu_keyboard():
  keyboard = [[InlineKeyboardButton('Submenu 2-1', callback_data='m2_1')],
              [InlineKeyboardButton('Submenu 2-2', callback_data='m2_2')],
              [InlineKeyboardButton('Main menu', callback_data='main')]]
  return InlineKeyboardMarkup(keyboard)


def main_menu_message():
  return 'wow'

def first_menu_message():
  return 'Choose the submenu in first menu:'



updater = Updater('asdasdasdasd')

updater.dispatcher.add_handler(CommandHandler('start', start))
updater.dispatcher.add_handler(CallbackQueryHandler(main_menu, pattern='main'))
updater.dispatcher.add_handler(CallbackQueryHandler(first_menu, pattern='m1'))
updater.dispatcher.add_handler(CallbackQueryHandler(second_menu, pattern='m2'))
updater.dispatcher.add_handler(CallbackQueryHandler(third_menu, pattern='m3'))
updater.dispatcher.add_handler(CallbackQueryHandler(first_submenu, pattern='m1_1'))
updater.dispatcher.add_handler(CallbackQueryHandler(first_submenu, pattern='m1_2'))
updater.dispatcher.add_handler(CallbackQueryHandler(second_submenu, pattern='m2_1'))
updater.dispatcher.add_handler(CallbackQueryHandler(second_submenu, pattern='m2_2'))
updater.dispatcher.add_handler(CallbackQueryHandler(third_submenu, pattern='m3_1'))
updater.dispatcher.add_handler(CallbackQueryHandler(third_submenu, pattern='m3_2'))

updater.start_polling()
  

Все, что мне нужно, это когда я нажимаю start в боте, чтобы он ответил gif,
текст приветствия и клавиатура главного меню.

я пытался вставить только ссылку, безуспешно

я понимаю, что вы можете использовать опцию «Отправить документ» или «Отправить gif» и добавить сообщение и встроенную клавиатуру. похоже, не могу понять, как это сделать

пример, который был бы отличным, я новичок в этом, спасибо