codeFlowType:
codeWrite
codeFlowLang:
Python
Напиши легкого телеграмм бота, запускающийся с помощью @BotFather бота. в боте должны быть 6 кнопок. первая кнопка-"помощь". вторая кнопка-"о боте". третья кнопка-"информация о боте". четвертая кнопка-"фото горилы" при нажатии на нее должна выскакивать фотография https://upload.wikimedia.org/wikipedia/commons/b/bc/Male_silverback_Gorilla.JPG пятая кнопка-"информация о животном" при нажатии на эту кнопку возьми информации с википедии о гориле https://ru.wikipedia.org/wiki/%D0%93%D0%BE%D1%80%D0%B8%D0%BB%D0%BB%D1%8B шестая кнопка должна называться "купить горилу" при нажатии на эту кнопку, должна появляться надпись "горил нет в наличии" при этом на каждой вкладке должна находится кнопка, которая при нажатии вернет в меню
Вот пример простого телеграм-бота на языке Python с использованием библиотеки python-telegram-bot
. Этот код реализует функциональность, которую вы описали.
Перед тем как запустить бот, убедитесь, что вы установили необходимые библиотеки. Вы можете сделать это, выполнив команду:
pip install python-telegram-bot
Теперь вы можете использовать следующий код для создания бота:
import logging
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, MessageHandler, Filters, CallbackContext
import requests
# Включите ведение журнала
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
# Функция для начала общения с ботом
def start(update: Update, context: CallbackContext) -> None:
keyboard = [
[InlineKeyboardButton("Помощь", callback_data='help')],
[InlineKeyboardButton("О боте", callback_data='about')],
[InlineKeyboardButton("Информация о боте", callback_data='info')],
[InlineKeyboardButton("Фото горилы", callback_data='gorilla_photo')],
[InlineKeyboardButton("Информация о животном", callback_data='animal_info')],
[InlineKeyboardButton("Купить горилу", callback_data='buy_gorilla')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text('Пожалуйста, выберите опцию:', reply_markup=reply_markup)
# Обработка нажатий кнопок
def button(update: Update, context: CallbackContext) -> None:
query = update.callback_query
query.answer()
if query.data == 'help':
query.edit_message_text(text="Вы можете использовать следующие кнопки для взаимодействия с ботом.")
elif query.data == 'about':
query.edit_message_text(text="Этот бот предоставляет информацию о гориллах и научные факты по теме.")
elif query.data == 'info':
query.edit_message_text(text="Бот был создан для обучения работе с API Telegram на Python.")
elif query.data == 'gorilla_photo':
query.edit_message_media(media='https://upload.wikimedia.org/wikipedia/commons/b/bc/Male_silverback_Gorilla.JPG')
elif query.data == 'animal_info':
response = requests.get("https://ru.wikipedia.org/wiki/Гориллы")
info = response.text[:2000] # Получаем первые 2000 символов статьи для демонстрации
query.edit_message_text(text=f"Информация о гориллах: {info}...", parse_mode='HTML')
elif query.data == 'buy_gorilla':
query.edit_message_text(text="Горил нет в наличии.")
# Кнопка для возврата в главное меню
keyboard = [[InlineKeyboardButton("Вернуться в меню", callback_data='return_menu')]]
reply_markup = InlineKeyboardMarkup(keyboard)
query.message.reply_text(text='Пожалуйста, выберите опцию:', reply_markup=reply_markup)
# Функция для возврата в меню
def return_menu(update: Update, context: CallbackContext) -> None:
start(update, context)
def main() -> None:
# Вставьте токен вашего бота, полученный от BotFather
updater = Updater("ВАШ_ТОКЕН_ЗДЕСЬ")
updater.dispatcher.add_handler(CommandHandler("start", start))
updater.dispatcher.add_handler(CallbackQueryHandler(button))
updater.dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, start))
# Запуск бота
updater.start_polling()
# Обычное завершение
updater.idle()
if __name__ == '__main__':
main()
"ВАШ_ТОКЕН_ЗДЕСЬ"
на ваш токен, который вы получили от @BotFather
.gorilla_bot.py
.python gorilla_bot.py
Теперь ваш бот готов к использованию! Вы можете начать с команды /start
, и затем взаимодействовать с кнопками.