it Новости Пишем телеграмм бота на Python / Бот по выбору языка программирования
Пишем телеграмм бота на Python / Бот по выбору языка программирования

Пишем телеграмм бота на Python / Бот по выбору языка программирования

4 105
10 апреля 2020 в 16:15

Простая инструкция по созданию легкого и удобного бота по выбору языка программирования.

Для работа с API телеграмма необходимо использовать одну из возможных библиотек. Библиотек много, но давайте сейчас остановимся на pyTelegramBotAPI как на одной из наиболее продвинутых библиотек.


Сперва выполняем её установку в проект. После установки импортируем её, а также устанавливаем API ключ для бота.


Получить ключ для бота можно через другого специального бота в телеграмме. Этот бот называется BotFather. Работать с ботом очень просто и всё что нам нужно сделать, так это обратиться к «папе боту», создать в нём нового бота, придумать название и после этого получить API ключ. Кстати, здесь же вы можете указать описание для бота, фото и прочую инфу. Если захотите, то с этим неплохо можно поиграться.



Вставляем полученный ключ в программу. 


Теперь создайте весь необходимый функционал. Весь код представлен ниже:

import telebot
from telebot import types

bot = telebot.TeleBot('ВАШ_API_КЛЮЧ')


@bot.message_handler(commands=['website'])
def open_website(message):
	markup = types.InlineKeyboardMarkup()
	markup.add(types.InlineKeyboardButton("Перейти на сайт", url="https://itproger.com"))
	bot.send_message(message.chat.id,
			"Отличный выбор, нажмите на кнопку ниже и начинайте изучения курсов прямо сейчас",
			parse_mode='html', reply_markup=markup)


@bot.message_handler(commands=['insta'])
def instagram(message):
	markup = types.InlineKeyboardMarkup()
	markup.add(types.InlineKeyboardButton("Перейти в Инстаграм", url="https://www.instagram.com/itproger_official/"))
	bot.send_message(message.chat.id, "Нажмите на кнопку ниже и погрузитесь в мир IT прямо сейчас", parse_mode='html', reply_markup=markup)


@bot.message_handler(commands=['vk'])
def vk(message):
	markup = types.InlineKeyboardMarkup()
	markup.add(types.InlineKeyboardButton("Посетить группу Вк", url="https://vk.com/prog_life"))
	bot.send_message(message.chat.id, "Нажмите на кнопку ниже и погрузитесь в мир IT прямо сейчас", parse_mode='html', reply_markup=markup)


@bot.message_handler(commands=['start'])
def start(message):
	markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
	btn1 = types.KeyboardButton('Создание игр')
	btn2 = types.KeyboardButton('Мобильные приложения')
	btn3 = types.KeyboardButton('Веб разработка')
	btn4 = types.KeyboardButton('Софт для компьютеров')
	btn5 = types.KeyboardButton('Обработка данных')
	btn6 = types.KeyboardButton('Создание ИИ')
	markup.add(btn1, btn2, btn3, btn4, btn5, btn6)
	send_mess = f"<b>Привет {message.from_user.first_name} {message.from_user.last_name}</b>!\nКакое направление тебя интересует?"
	bot.send_message(message.chat.id, send_mess, parse_mode='html', reply_markup=markup)


@bot.message_handler(content_types=['text'])
def mess(message):
	get_message_bot = message.text.strip().lower()

	if get_message_bot == "начать тест заново":
		markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
		btn1 = types.KeyboardButton('Создание игр')
		btn2 = types.KeyboardButton('Мобильные приложения')
		btn3 = types.KeyboardButton('Веб разработка')
		btn4 = types.KeyboardButton('Софт для компьютеров')
		btn5 = types.KeyboardButton('Обработка данных')
		btn6 = types.KeyboardButton('Создание ИИ')
		markup.add(btn1, btn2, btn3, btn4, btn5, btn6)

		final_message = "Решил попробовать что-то ещё? \nВыбери какое направление тебя интересует:"
	elif get_message_bot == "создание игр":
		markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
		btn1 = types.KeyboardButton('Под мобильные телефоны')
		btn2 = types.KeyboardButton('Компьютеры и консоли')
		btn3 = types.KeyboardButton('Виртуальная реальность')
		btn4 = types.KeyboardButton('Web игра')
		btn5 = types.KeyboardButton("Начать тест заново")
		markup.add(btn1, btn2, btn3, btn4, btn5)
		final_message = "Отлично, геймдев крутая тема, но под что хочется разрабатывать?"
	elif get_message_bot == "под мобильные телефоны":
		markup = types.InlineKeyboardMarkup()
		markup.add(types.InlineKeyboardButton("Посмотреть курсы по Unity", url="https://itproger.com/tag/unity"))
		final_message = "Для разработки игр под мобильные устройства зачастую используется игровой движок <a href='https://itproger.com/tag/unity'>Unity</a>\nДвижок прост в изучении и вы можете просмотреть курсы по нему по кнопке ниже"
	# Здесь различные дополнительные проверки и условия
	else:
		markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
		btn1 = types.KeyboardButton('Создание игр')
		btn2 = types.KeyboardButton('Мобильные приложения')
		btn3 = types.KeyboardButton('Веб разработка')
		btn4 = types.KeyboardButton('Софт для компьютеров')
		btn5 = types.KeyboardButton('Обработка данных')
		btn6 = types.KeyboardButton('Создание ИИ')
		markup.add(btn1, btn2, btn3, btn4, btn5, btn6)
		final_message = "Так, так, так\nПостой, лучше нажми на одну из интерактивных кнопок ниже"
	bot.send_message(message.chat.id, final_message, parse_mode='html', reply_markup=markup)


bot.polling(none_stop=True)

Наш бот

Сейчас каждый может протестировать нашего бот по этой ссылочке. Как видите, реализация бота это просто и никаких особых усердий не требуется.


Видео на эту тему

Также вы можете просмотреть детальное видео по разработке данного бота:




Дополнительный курс

На нашем сайте также есть углубленный курс по изучению языка Питон. В ходе огромной программы вы изучите не только язык Питон, но также научитесь создавать веб сайты за счёт веб технологий и фреймворка Джанго. За курс вы изучите массу нового и к концу программы будете уметь работать с языком Питон, создавать на нём полноценные ПК приложения на основе библиотеки Kivy, а также создавать веб сайты на основе библиотеки Джанго.


Больше интересных новостей

Комментарии для сайта Cackle