Создание Бота для Telegram на Python

30.12.2017

Сегодня мы будем создать Бот для Telegram на Python. Для этого нам понадобятся определенные инструменты:

Инструменты:

  • Mac OS (Я использую данную ОС, поэтому будем рассматривать создание на ней)
  • Установленный клиент Telegram (Подойдет и Web Версия)
  • Python 3
  • Документация для Telegram API
  • Менеджер пакетов PIP
  • PyCharm CE

Установка:

  • Скачиваем клиент Telegram с официального сайта и устанавливаем
  • Скачиваем Python 3 с официального сайта и устанавливаем
  • Скачиваем PyCharm Commercial с официального сайта и устанавливаем

Далее переходим к установке менеджера пакетов PIP. Для этого открываем Терминал на Mac OS и вводим команду python3. Вы должны увидеть примерную информацию:

Установка PIP пакета
Установка PIP пакета

и после уточняем версию командой в Терминале pip3 -v.

Переходим к установке менеджера пакетов PIP, для этого, для этого в Терминале вводим команду pip3 install pyTelegramBotAPI, который отвечает за создание и работу Бота.

Проверка модуля
Проверка модуля

Если модуль проектов был успешно установлен, то Вы увидите строку в терминале Successfully installed pyTelegramBotAPI.

Регистрация:

Первым делом нам нужно зарегистрировать нашего робота в Telegram. Для этого открываем клиент Telegram и переходим к BotFather. Запускаем бота и отправляем ему команду /newbot.

Первым делом нас спросят о названии бота, именно об имени, то, что будет отображаться в списке диалогов рядом с аватаркой. Теперь нужно придумать уникальный логин для Бота, который должен оканчиваться на bot или _bot.

Регистрация
Регистрация

Всё, что нам нужно узнать из полученного сообщения — длинную строку, TOKEN. Это ключ, с помощью которого мы сможем управлять Ботом через Python.

Задачи:

  • При первом обращении к Боту, он спросит Вашему имя и поздоровается с Вами
  • У Бота должно быть меню, по нажатии на которые будут выполнять функции, а именно отправка медиа сообщений и текста
  • Добавим уведомления в шапке Telegram в реальном времени
  • Добавим кнопку к сообщениям
  • Введение статистики
  • Установим Бот на сервер

Разработка:

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

В данной статье разберем первую задачу и далее по порядку. Итак начнем, заходим в PyCharm и начинаем программировать. Подключаем библиотеку строчкой в коде import telebot, далее подключаем token и передаем Бот под управление Python строчкой bot.telebot,TeleBot(token). Мы зарегистрировали Бота и смогли передать его управление Python.

Описании ниже
Описании ниже

Наша библиотека pyTelegramBotAPI поддерживает обработчики с помощью которых можно научить робота отвечать на различные сообщения. Создадим обработчик, который будет отвечать на команду /start, внутри обработчика создадим функцию, в которой будем спрашивать пользователя его имя.

@bot.message_handler(commands=['start'])
def start(message):
sent = bot.send_message(message.chat.id, 'Как тебя зовут?')
bot.register_next_step_handler(sent, hello)

Далее создадим саму функцию hello, в которой и будем приветствовать нашего дорогого пользователя:

def hello(message):
bot.send_message(message.chat.id, 'Привет, {name}. Рад тебя видеть.'.format(name=message.text))

Последнее, что осталось добавить в конец кода и запускаем кнопкой Run.

bot.polling()

При помощи функции polling наш робот постоянно обращается к серверам Telegram и как бы спрашивает “есть ли новые сообщения для меня?”, получая ответы от Telegram.

Отправляем запрос
Отправляем запрос
Отвечаем
Отвечаем

Мы создали первого Бота для Telegram и это только начало. Поздравляю!