Найти тему
🌠 СМЕРТНИК dev

Telegram-бот | Инфо-бот | Урок №1 (Python)

Всем привет, разберём способ создания информационного бота в Telegram на основе языка Python. (Все кодировки можете просто копировать, так будет быстрее)

Урок первый, список требований для него:

1. Telegram,
2. SQLite,
3. PyCharm (+Python само собой),
4. DB Browser for SQL.

Начнём с основы основ. Заходим в Telegram и в поиске вбиваем
BotFather.
Запускаем бота командой /start.
Нам выходит список возможностей бота, нажимаем на кликабельную команду /newbot.

-2

Бот выводит нам вопросительное сообщение, которое запрашивает НАЗВАНИЕ вашего бота. Вписываем желаемое название Вашего бота. Я впишу "Test", а Вы впишите желаемое Вами название.

-3

Далее, после успешного выбора названия для Вашего бота, BotFather запрашивает ТЕГ который Вы желаете установить для Вашего бота. Я впишу всё так же testingdzen_bot. УЧТИТЕ, что возможны названия вида только: {tag}bot или {tag}_bot ({tag} - желаемый тег), другие названия бот не обрабатывает и выдаёт ошибку.

-4

После успешного ввода тега Вашего бота - BotFather выдаёт нам нужный токен, его мы записываем, он нам понадобится чуть позже.
При желании Вы можете поставить описание бота через команду: /setdescription;
Информацию о боте: /setabouttext (то самое окошко, которое видно при запуске бота, пример ниже);
Аватарку бота: /setuserpic;
Для смены названия бота (ника): /setname

Перейдём наконец уже к созданию кода для подключения бота.

Запускаем PyCharm:
1. Создаем новый проект с любым названием. (File -> New Project)

-5

2. Создаем в проекте файлы main.py и settings.py (RClick по панели слева -> New -> Python file.
3. Заходим в файл settings.py и пишем следующее:
cfg = {
"token": "TOKEN", # токен бота
}

(Вместо TOKEN пишем вставляем токен, выданный нам от BotFather)

Первоначальные действия сделали, далее заходим в терминал и пишем следующую команду:
pip install pyTelegramBotAPI (устанавливаем библиотеку для работы с Telegram)

После установки переходим в main.py и пишем:

from settings import cfg
import sqlite3
import telebot
import uuid

-6

После этого, мы приступаем к подключению кода к боту и созданию базы данных.

Предварительно, для того чтобы понимать о том, что в коде нет ошибок мы пишем:

print("Бот успешно запущен! Приятного пользования") # точь в точь не обязательно, пишите всё что захотите

После этого мы пишем следующие строки:

db = sqlite3.connect('database.db', check_same_thread=False) # подключение через SQL3 к базе данных
cursor = db.cursor() # система курсоров

bot = telebot.TeleBot(cfg['token']) # подключение к боту

Правильный код выглядит так.
Правильный код выглядит так.

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

cursor.execute("""CREATE TABLE IF NOT EXISTS users(
id INTEGER PRIMARY KEY AUTOINCREMENT,
nick TEXT
)""")
db.commit() # закрываем бд после запуска

Данный код будет собирать только ник пользователей, а так же ID аккаунта.

А теперь подключим команду /start.

@bot.message_handler(commands=['start']) # обработчик команды start
def start(message):
usrid = message.chat.id # берем айди пользователя
cursor = db.cursor() # Создаем новый курсор
try:
info = cursor.execute("SELECT id FROM users WHERE id = ?", (usrid,)).fetchone()
if info is None:
new_user_id = int(uuid.uuid4())
cursor.execute("INSERT INTO users VALUES (?, ?)", (usrid, message.from_user.first_name))
db.commit()

bot.send_message(message.chat.id, "*Привет! Я информационный бот созданный на языке Python") # Значение после * можно изменить на своё.
finally:
cursor.close() # Закрываем курсор

bot.polling(none_stop=True, timeout=60)

-8

После этого всего вы можете открыть путь Вашего проекта и вынести его с списка проектов на рабочий стол, для дальнейшей работы с бд.

Вот и всё. Мы сделали бота и подключили его к кодировке. Как сделать функционал мы разберём в следующих уроках. Спасибо за внимание!

Работа бота
Работа бота

Если у Вас появились проблемы/вопросы - обращайтесь ко мне в телеграм:
https://t.me/im_pirate

Дорогу молодым!