Всем привет, разберём способ создания информационного бота в Telegram на основе языка Python. (Все кодировки можете просто копировать, так будет быстрее)
Урок первый, список требований для него:
1. Telegram,
2. SQLite,
3. PyCharm (+Python само собой),
4. DB Browser for SQL.
Начнём с основы основ. Заходим в Telegram и в поиске вбиваем BotFather.
Запускаем бота командой /start.
Нам выходит список возможностей бота, нажимаем на кликабельную команду /newbot.
Бот выводит нам вопросительное сообщение, которое запрашивает НАЗВАНИЕ вашего бота. Вписываем желаемое название Вашего бота. Я впишу "Test", а Вы впишите желаемое Вами название.
Далее, после успешного выбора названия для Вашего бота, BotFather запрашивает ТЕГ который Вы желаете установить для Вашего бота. Я впишу всё так же testingdzen_bot. УЧТИТЕ, что возможны названия вида только: {tag}bot или {tag}_bot ({tag} - желаемый тег), другие названия бот не обрабатывает и выдаёт ошибку.
После успешного ввода тега Вашего бота - BotFather выдаёт нам нужный токен, его мы записываем, он нам понадобится чуть позже.
При желании Вы можете поставить описание бота через команду: /setdescription;
Информацию о боте: /setabouttext (то самое окошко, которое видно при запуске бота, пример ниже);
Аватарку бота: /setuserpic;
Для смены названия бота (ника): /setname
Перейдём наконец уже к созданию кода для подключения бота.
Запускаем PyCharm:
1. Создаем новый проект с любым названием. (File -> New Project)
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
После этого, мы приступаем к подключению кода к боту и созданию базы данных.
Предварительно, для того чтобы понимать о том, что в коде нет ошибок мы пишем:
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)
После этого всего вы можете открыть путь Вашего проекта и вынести его с списка проектов на рабочий стол, для дальнейшей работы с бд.
Вот и всё. Мы сделали бота и подключили его к кодировке. Как сделать функционал мы разберём в следующих уроках. Спасибо за внимание!
Если у Вас появились проблемы/вопросы - обращайтесь ко мне в телеграм:
https://t.me/im_pirate
Дорогу молодым!