Чтобы кнопки отображались в виде клавиатуры "replyKeyboard", а не "InlineKeyboard", необходимо использовать метод `ReplyKeyboardMarkup` из модуля `telegram` для создания клавиатуры с кнопками.
Для переписывания кода таким образом, чтобы не вызывалась ошибка "invalid literal for int() with base 10" в функции `def echo_message2 (message)`, можно воспользоваться проверкой типа сообщения на равенство "text" и игнорировать сообщения других типов.
Приведу пример кода, который решает обе задачи:
```python
from telegram import ReplyKeyboardMarkup
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
# Функция, которая будет обрабатывать команду /start
def start(update, context):
# Отправляем приветственное сообщение
context.bot.send_message(chat_id=update.effective_chat.id, text="Привет! Я бот с кнопками.")
# Создаем клавиатуру с кнопками
keyboard = ReplyKeyboardMarkup([["Кнопка 1"], ["Кнопка 2"]])
# Отправляем клавиатуру
context.bot.send_message(chat_id=update.effective_chat.id, text="Выбери кнопку:", reply_markup=keyboard)
# Функция, которая будет обрабатывать сообщения с текстом
def echo_message(update, context):
# Получаем текст сообщения
text = update.message.text
# Отправляем сообщение
context.bot.send_message(chat_id=update.effective_chat.id, text=f"Ты написал: {text}")
# Функция, которая будет игнорировать сообщения других типов (фото, видео и т.д.)
def echo_message2(update, context):
pass
def main():
# Создаем экземпляр класса Updater
updater = Updater(token='YOUR_BOT_TOKEN', use_context=True)
# Получаем экземпляр класса Dispatcher
dispatcher = updater.dispatcher
# Регистрируем обработчики команд
dispatcher.add_handler(CommandHandler("start", start))
# Регистрируем обработчик для текстовых сообщений
dispatcher.add_handler(MessageHandler(Filters.text, echo_message))
# Регистрируем обработчик для остальных типов сообщений
dispatcher.add_handler(MessageHandler(Filters.all, echo_message2))
# Запускаем бота
updater.start_polling()
# Останавливаем бота при нажатии Ctrl + C
updater.idle()
if __name__ == '__main__':
main()
```
Замените `'YOUR_BOT_TOKEN'` на токен вашего бота. Убедитесь, что у вас установлена библиотека `python-telegram-bot` версии 13.0 или выше, для поддержки клавиатур "replyKeyboard".