Skip to content

24

В сети

3.2k

Пользователи

5.1k

Темы

26.1k

Посты
  • Полезно ознакомиться перед регистрацией

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

    343 Темы
    1k Посты
    zerlatZ

    Здравствуйте! Сегодня я хочу поделиться с вами опытом создания простого Telegram-бота на языке Python. В качестве примера я возьму бота, который делает скриншоты по заданному времени.

    Используемые версии:
    Версия Aiogram: 3.17.0
    Версия Python: 3.11.7

    Создание бота в телеграмм: Заходим в телеграмм и ищем там @BotFather Как нашли, пишем /newbot
    Он попросит написать имя для бота, пишем свое название бота
    Бот
    Затем он попросит ввести username бота, пишем, ОБЯЗАТЕЛЬНО В КОНЦЕ ДОБАВИТЬ _bot После того как мы это сделали, он нам даст токен, его нам нужно сохранить, мы его позже используем
    Токен Так же нужно перейти в нашего бота и написать любое сообщение Установка Python и создание бота: Для начала надо установить сам Python с этого сайта (я буду использовать версию 3.11, т.к она мне привычнее, но вы можете использовать последнюю) После установки нам нужно установить IDE, на выбор есть несколько: VSCode, Sublime, Notepad++, я буду использовать VSCode, так как он удобен в плане подсветки синтаксиса и удобных расширений, Notepad++ совершенно не советую использовать, т.к он максимально неудобен, а так можете хоть в обычном блокноте писать код Теперь нужно установить зависимости, для этого надо открыть командную строку WIndows и написать там pip install aiogram pyautogui После установки IDE, нам нужно создать папку в которой мы будем работать Как создали папку, надо создать папку handlers и файл main.py (не в handlers)

    Так выглядит наша рабочая директория:
    Так выглядит наша рабочая директория

    Заходим в файл main.py
    И пишем там наш код:

    # Импортируем библиотеки import asyncio import logging from aiogram import Bot, Dispatcher, types from aiogram.filters import Command from aiogram.enums.parse_mode import ParseMode from aiogram.fsm.storage.memory import MemoryStorage from aiogram.client.bot import DefaultBotProperties from aiogram.types.input_file import FSInputFile import asyncio import pyautogui import os token = "ВАШ ТОКЕН" # Токен бота который мы берем с t.me/botfather my_id = 35ВАШ_АЙДИ # ID Кому будут отправляться сообщения, получить его можно в t.me/username_to_id_bot time_to_screen = 120 # (в секундах) Каждые 2 минуты отправлять скриншот bot = Bot(token=token, default=DefaultBotProperties(parse_mode=ParseMode.HTML)) dp = Dispatcher(storage=MemoryStorage()) def make_screen(filename): ''' Функция создания скриншота ''' pyautogui.screenshot(filename) return filename async def send_screenshot(): ''' Функция отправки скриншота каждые N секунд (задается time_to_screen) ''' while True: # Бесконечный цикл filename = make_screen("screenshottime.png") # Делаем скриншот с аргументом названия файла (получившегося скриншота) await bot.send_photo(my_id, filename) # Функция отправки скриншота await asyncio.sleep(time_to_screen) # Спим N секунд (задается time_to_screen) @dp.message(Command('screen')) # Инициализируем команду /screen async def screenshot(message: types.Message): ''' Функция скриншота после комманды ''' if message.from_user.id == my_id: # Проверяем, мы ли написали сообщение filename = make_screen("screenshotcmd.png") # Делаем скриншот с аргументом названия файла (получившегося скриншота) if os.path.exists(filename): # Проверяем, сделался ли скриншот await message.answer_photo(FSInputFile(filename)) # Если файл скриншота существует, отправляем его else: await message.reply("Произошла ошибка при скриншоте") # Если не существует, то отправляем соответствующее сообщение async def main(): await bot.delete_webhook(drop_pending_updates=True) asyncio.create_task(send_screenshot()) await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types()) if __name__ == "__main__": logging.basicConfig(level=logging.INFO) asyncio.run(main()) Заполняем свои данные в token и my_id

    Запускаем код, для этого нужно перейти в папку с нашим скриптом, открыть там Командную строку, что бы это сделать, надо нажать правую кнопку мыши по свободному пространству в папке и нажать “Открыть в терминале” или “Открыть в командной строке”
    Открыть в терминале

    Затем прописать там py main.py, мы увидим что бот запустился
    Запустился бот
    Так же нам в лс придет скриншот нашего экрана
    Скриншот от бота

    Надо проверить команду /screen
    Пишем в бота /screen
    /screen
    И как видим всё работает!

    Данный гайд создан для ознакомления с языком Python и библиотекой aiogram

    Если у вас возникли вопросы, можете написать либо в комментарии, либо в лс форума, либо по контактам:
    TG: https://t.me/mongoliatupo
    Discord: _monterat (отвечаю не всегда)

    Пишу на форуме впервые, поэтому не судите строго, лучше посоветуйте что нибудь)

  • Наш самый крупный и популярный сервер в сегменте Medium RP

    4k Темы
    18k Посты
    1000+71

    Пока отклонено. Отсутствуют причины для снятия наказания.
    Проявляй актив на социальных площадках Octothorp. Посмотрим, как ты изменился.

  • 167 Темы
    447 Посты
    andrey_p1mplA

    не является предложением, пиши людям с ролью @модератор вики

  • Те, без кого не обойтись

    148 Темы
    4k Посты
    биляяяяБ

    🤣🤣🤣🤣

Недавняя активность