- Статус
- Оффлайн
- Регистрация
- 11 Янв 2019
- Сообщения
- 39
- Реакции
- 7
В данной статье я вам покажу, как сделать бота для телеги на питоне. В этом ничего сложного нет
1. Качаем питон 3.6(
2. Открываем консоль и хуярим туда это
3. Создаем в любом месте папку, в которой создаем еще 3 файла. config.py, bot.py, run.bat
(у вас будут другие иконки, у меня просто IDE стоит, если будете дальше кодить на питоне, то советую ее поставить(
4. Сначала заполняем батник этим кодом
@echo off - отключаем возможность инпута
py bot.py - запускаем самого бота
pause - если у бота будет ошибка, чтобы консоль сразу же не закрылась
5. Открываем config.py и вписываем туда этот код
6. Пока что не трогаем наш конфиг и идем создавать самого бота в телеге. Открываем телегу и ищем бота по такому Username -
7. Пишем боту /newbot и заполняем то, что от нас требуется
который вставим в конфиг*
8. Заполняем конфиг, в 1 строку вписываем токен, который скопировали в BotFather, чтобы полчилось примерно так
logchannelid пока что не трогаем
9. И так, начинаем писать сам код бота в bot.py. Первое что мы сделаем, это прием сообщений через лонгполл
В коде на каждой строке есть коменты, что где происходит, если что-то не понятно, то задавайте вопросы в теме, мне проще писать коменты в коде xD
10. Если сейчас запустим, то наш бот делать не будет, давайте научим его принимать команду '/start'
11. Открываем run.bat и стартуем бота, и видим примерно такое
12. Теперь настроем лог. Создаем канал в телеге, пишем в него все что угодно и пересылаем это сообщение боту, реплаем пишем /start, потом из консоли копируем это значение.
13. Вписываем айди канала с логом в конфиг.
14. Добавим функцию лога, которую будем вызвать, когда нужно залогировать сообщение. И добавляем бота в канал как админа, чтобы он мог постить сообщения
15. Теперь вы можете по такому шаблону добавлять команды. Так же
та вроде все, либа самая простая, потом мб завезу еще гайд на другую либу

1. Качаем питон 3.6(
Пожалуйста, авторизуйтесь для просмотра ссылки.
), только в установке прожмите Add python 3.6 to path2. Открываем консоль и хуярим туда это
Bash:
pip install pytelegrambotapi
3. Создаем в любом месте папку, в которой создаем еще 3 файла. config.py, bot.py, run.bat
Пожалуйста, авторизуйтесь для просмотра ссылки.
))4. Сначала заполняем батник этим кодом
Bash:
@echo off
py bot.py
pause
py bot.py - запускаем самого бота
pause - если у бота будет ошибка, чтобы консоль сразу же не закрылась
5. Открываем config.py и вписываем туда этот код
Python:
bottoken = "token_from_botfather" #Токен бота
logchannelid = 0 #ID канала в котором будет храниться лог
6. Пока что не трогаем наш конфиг и идем создавать самого бота в телеге. Открываем телегу и ищем бота по такому Username -
Пожалуйста, авторизуйтесь для просмотра ссылки.
7. Пишем боту /newbot и заполняем то, что от нас требуется
8. Заполняем конфиг, в 1 строку вписываем токен, который скопировали в BotFather, чтобы полчилось примерно так
Python:
bottoken = "XXXXXXX:CENSORED" #Токен бота
logchannelid = 0 #ID канала в котором будет храниться лог
9. И так, начинаем писать сам код бота в bot.py. Первое что мы сделаем, это прием сообщений через лонгполл
Python:
import telebot # Импортируем нашу либу, которую скачали во 2 шаге
import config # Импортируем config.py
bot = telebot.TeleBot(config.bottoken) # Юзая либу инициализируем сам объект бота, используя из конфига токен
try: # Пытаемся запустить бесконечный поллинг бота
bot.infinity_polling()
except Exception as e: # Если не можем, то записывем ошибку в перменную e
print("Error in polling: ") # Сообщаем, что не можем принять евенты от телеги
print(str(e)) # Выводим на экран ошибку
#Скрипт закрывается, если была ошибка
10. Если сейчас запустим, то наш бот делать не будет, давайте научим его принимать команду '/start'
Python:
import telebot # Импортируем нашу либу, которую скачали во 2 шаге
import config # Импортируем config.py
bot = telebot.TeleBot(config.bottoken) # Юзая либу инициализируем сам объект бота, используя из конфига токен
@bot.message_handler(commands=['start'])
def onstart(message):
print(message.json) # Выводим весь класс сообщения для дебага
#bot.reply_to(message, "Привет, юзвер") # Ответ на сообщение с реплаем методом reply_to
# bot.send_message(message.chat.id, "Привет, юзвер") # Ответ на сообщение просто сообщением в чат
#bot.send_message(message.chat.id, "Привет, *юзвер*", parse_mode="Markdown") # Ответ на сообщение просто в чат с Markdown
bot.send_message(message.chat.id, "Привет, *юзвер*", reply_to_message_id=message.message_id, parse_mode="Markdown") # Ответ на сообщения реплаем на сообщение с командой с парсингом Markdown.
#Одно и то же, что и bot.reply_to(message, "Привет, *юзвер*", parse_mode="Markdown")
try: # Пытаемся запустить бесконечный поллинг бота
bot.infinity_polling()
except Exception as e: # Если не можем, то записывем ошибку в перменную e
print("Error in polling: ") # Сообщаем, что не можем принять евенты от телеги
print(str(e)) # Выводим на экран ошибку
#Скрипт закрывается, если была ошибка
11. Открываем run.bat и стартуем бота, и видим примерно такое
12. Теперь настроем лог. Создаем канал в телеге, пишем в него все что угодно и пересылаем это сообщение боту, реплаем пишем /start, потом из консоли копируем это значение.
13. Вписываем айди канала с логом в конфиг.
Python:
logchannelid = -1001343528653 #ID канала в котором будет храниться лог
14. Добавим функцию лога, которую будем вызвать, когда нужно залогировать сообщение. И добавляем бота в канал как админа, чтобы он мог постить сообщения
Python:
import telebot # Импортируем нашу либу, которую скачали во 2 шаге
import config # Импортируем config.py
bot = telebot.TeleBot(config.bottoken) # Юзая либу инициализируем сам объект бота, используя из конфига токен
@bot.message_handler(commands=['start'])
def onstart(message):
#print(message.json) # Закоментил, т.к. уже не нужно получить айди канала
#bot.reply_to(message, "Привет, юзвер") # Ответ на сообщение с реплаем методом reply_to
# bot.send_message(message.chat.id, "Привет, юзвер") # Ответ на сообщение просто сообщением в чат
#bot.send_message(message.chat.id, "Привет, *юзвер*", parse_mode="Markdown") # Ответ на сообщение просто в чат с Markdown
log(message)
bot.send_message(message.chat.id, "Привет, *юзвер*", reply_to_message_id=message.message_id, parse_mode="Markdown") # Ответ на сообщения реплаем на сообщение с командой с парсингом Markdown.
#Одно и то же, что и bot.reply_to(message, "Привет, *юзвер*", parse_mode="Markdown")
def log(msg):
logstr = "Юзер с айди " + msg.from_user.id + " отправил мне " + message.text
print(logstr)
bot.send_message(config.logchannelid, logstr)
try: # Пытаемся запустить бесконечный поллинг бота
bot.infinity_polling()
except Exception as e: # Если не можем, то записывем ошибку в перменную e
print("Error in polling: ") # Сообщаем, что не можем принять евенты от телеги
print(str(e)) # Выводим на экран ошибку
#Скрипт закрывается, если была ошибка
15. Теперь вы можете по такому шаблону добавлять команды. Так же
Пожалуйста, авторизуйтесь для просмотра ссылки.
ссылка на репозиторий либы, там можете чекать методы
Python:
@bot.message_handler(commands['command'])
def oncommand(message):
bot.reply_to(message, "Hello, World")
та вроде все, либа самая простая, потом мб завезу еще гайд на другую либу
Последнее редактирование: