Python. Создание и регистрация телеграм бота

С этой статьи мы начинаем делать себе ботов. Назначение и основные фичи мы определим потом, сейчас сделаем каркас.

Роскомнадзор продолжает банить айпишники телеграмма, поэтому к следующей статье мы напишем функцию для подбора работающего IP.

API

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

Библиотека

Первое что нужно сделать — скачать библиотеку с функциями для бота, она называется pyTelegramBotAPI.

Пишем в терминале винды:
pip install pytelegrambotapi

В терминале линукса/мака:
pip3 install pytelegrambotapi

Токен

Потом нужно написать Отцу ботов телеграмма — @BotFather
Нажимаем /newbot, придумываем имя и ссылку.

У Отца можно выставить аватарку, описание и стартовую информацию.

Когда вы подберёте незанятую ссылку, он выдаст вам токен. Это такой код, который объединяет в себе логин и пароль. По токену телеграм соединит код от вашего бота с его ссылкой.

Токен работает как пароль, а их лучше не раскрывать. Берегите свои данные

Код

Создаём файл для пайтона, подгружаем бота из библиотеки и присваиваем ему токен.

import telebot as tb
bot = tb.TeleBot('Сюда вставить свой токен')


Теперь сделаем реакцию на команду /start.

  • @bot.message_handler(commands=[’start’]) — Бот, лови команду /start и делай то, что скажут ниже
  • def start_message(message) — Функция принимает сообщение и обрабатывает его
  • bot.send_message(message.chat.id, ’любой текст’) — Отправь сообщение в чат с таким текстом

Получается такой код для ответа на команду /start

@bot.message_handler(commands=['start']) 
def start_message(message): 
    bot.send_message(message.chat.id, ''' 
    Я пока что умею только здороваться. Напишите что-нибудь''')


И теперь напишем приветствие с реплаем на сообщение от пользователя.

  • @bot.message_handler(commands=[’start’]) — Бот, лови любой текст и делай то, что скажут ниже
  • def repeat_all_messages(message) — Функция принимает сообщение и обрабатывает его
  • bot.reply_to(message, ’Не знаю, что там написано, но привет!’) — Отправь сообщение в чат с таким текстом

Получается вот так

@bot.message_handler(content_types=['text'])
def repeat_all_messages(message):
    bot.reply_to(message, 'Не знаю, что там написано, но привет!')


Сохраняем файл с .py расширением на удобном месте и копируем до него путь.

Запуск и хостинг

Чтобы бот отвечал на сообщения и вообще и работал, его нужно держать включенным. Открываем терминал, вставляем путь до файла и запускаем. Далее может быть два сценария

  1. Бот нормально подключается к телеграму и с ним можно поразговаривать.
Бот будет отвечать, пока вы не закрыли терминальное окошко или не остановили через Ctrl-C
  1. С вашего айпишника нельзя подключится к телеграмму и вылезает такая ошибка
После нескольких неудачных попыток, он выводит ошибку времени ожидания

Для второго случая нужно подключаться в обход блокировки.
Перед подключением токена, пишем иностранный IP-адрес, мы берем их с сайта HideMy.name

# Соединение с прокси чтобы обойти блокировку
tb.apihelper.proxy = {'https': 'https://35.159.52.64:8081'}

Чтобы бот работал постоянно, нужно загрузить его на хостинговый сервер и немного пошаманить. Программа будет запускаться вместе с сервером и завершаться только вместе с выключением сервера.
В Linux/Mac системах их называют демонами, а в Windows службами. Нам нравится название демоны, поэтому и для винды мы будем называть их так.



В следующей статье сделаем автоматическую смену IP.

Поделиться
Отправить
Запинить
Популярное