Привет, гость!

Добро пожаловать на CVVBOARD - крупнейший теневой кардинг форум. У нас Вы сможете найти огромное множество статей по теме кардинга и заработка в интернете. Актуальная информация, новости даркнета, сервисы от проверенных продавцов, эксклюзивные, только рабочие схемы заработка, ежедневные раздачи - все это Вы найдете на нашем форуме! Не пренебрегайте услугами Гарант-Сервиса это убережет Вас от мошенников. Обратите внимание, звание модератора не является гарантом в сделках!

Aiogram с нуля. Урок #1 Начало, эхо-бот

Overrated

Опытный user
Регистрация
10 Мар 2022
Сообщения
780
Реакции
86

Aiogram для чайников
Урок #1 Начало, эхо-бот​
Итак, сегодня я научу вас писать ботов для телеграма с помощью python используя библиотеку aiogram.
Главное преимущество aiogram'a перед другими библиотека для написания ботов(telebot и тд.) это асинхронность.
Асинхронная библиотека позволяет обрабатывать большое количество одновременных соединений. Именно поэтому при 1000+ пользователях наш бот не будет крашиться.

Ну что ж, приступим

Начнем с установки библиотек на наш пк(или же виртуальное окружение)

pip install aiogram

pip install asyncio

Asyncio предназначен для упрощения использования корутин и футур в асинхронном коде.Он нам сейчас не пригодиться, но на будущие - установим

Импортируем в код все - что нам нужно:



Код Python:




#База для создания бота
import aiogram
import asyncio
from aiogram import Bot, Dispatcher, executor, types
#Кнопки
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton


Так, а теперь по порядку:
Bot - это сам бот
Dispatcher - позволяет боту принимать события(сообщения, команды и тд)
Executor - Запускает наш бот
Types - Позволяет добавлять кнопки, и тд.
Из types мы достали только "Reply" кнопки, так же существуют и Inline кнопки, приведу пример, так будет легче
разъяснить

Reply кнопки:



Inline кнопки:


Что бы импортировать inline кнопки:



Код Python:




from aiogram.types import KeyboardButton, InlineKeyboardMarkup


Что бы запустить самого бота нам для начала нужен его токен. Токен
можно взять от бота BotFather при создании бота. Тут разъяснять не буду, есть миллионы 1-минутных гайдов.


Итак, я скопировал токен. Я буду его импортировать из отдельного файла
Что находиться в файле config.py:
bot_token = '5649036411:AAFNBuAfnG_uT0VLiZuPlYQh744v7rMF710'

Импорт переменной из стороннего файла:
from config import *

config - имя файла(без .py)
Звездочка(*) - значит импорт всего из файла(функции, переменные и тд.)
Если вам нужно импортировать что-то конкретное - просто вместо * поставьте имя переменной, функции и тд

Время написать оболочку, так называемою базу для бота:



Код Python:




bot = Bot(bot_token)
dp = Dispatcher(bot)


if __name__ == '__main__':
executor.start_polling(dp, skip_updates = True)


bot_token - токен, который мы прежде импортировали
bot - это название, оно видно только кодеру, и можете ставить туда все, что угодно, но все же "bot" это стандарт
dp - это название для диспетчера, "dp" - это тоже стандарт


executor.start_polling - запускает бота, дальше идет название диспетчера
skip_updates = True - позволяет пропускать все сообщения, которые были написаны до старта бота. То есть если наспамить что-либо, а после запустить бота, он не отреагирует на все эти сообщения.

Итак, мы создали пустышку, теперь давайте добавим что-нибудь.
Начнем с эхо-бота:





Код Python:




@dp.message_handler() #Принимает событие - сообщение от юзера
async def anymessage(soobchenie: types.Message): #Создаем функцию реакции на сообщение
await bot.send_message(soobchenie.from_user.id, soobchenie.text) # отправляем сообщение








soobchenie - это переменная в которую мы принимаем сообщение, там можно было написать все что угодно
message.from_user.id - это то, куда мы отправляем сообщение, а точнее обратно к юзеру

Все отлично работает. Теперь добавим реакцию на команду "/start"





Код Python:




@dp.message_handler(commands=['start']) # Реакция на событие - команда /start
async def command_start(message: types.Message): ##Создаем функцию реакции на сообщение
await bot.send_message(message.from_user.id, "Привет! Я эхо-бот, отправь мне сообщение") #отправляем сообщение








Вот только ставить функцию реакции на /start желательно первым(выше всего остального)
commands=['start'] Как раз таки определяет нашу команду, туда можно ставить не только 'start'

Вот так выглядит наш конечный код на сегодня:



Код Python:




#База для создания бота
import aiogram
import asyncio
from aiogram import Bot, Dispatcher, executor, types
#Кнопки
from config import *
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton

bot = Bot(bot_token)
dp = Dispatcher(bot)

@dp.message_handler(commands=['start']) # Реакция на событие - команда /start
async def command_start(message: types.Message): ##Создаем функцию реакции на сообщение
await bot.send_message(message.from_user.id, "Привет! Я эхо-бот, отправь мне сообщение") #отправляем сообщение

@dp.message_handler() #Принимает событие - сообщение от юзера
async def anymessage(soobchenie: types.Message): #Создаем функцию реакции на сообщение
await bot.send_message(soobchenie.from_user.id, soobchenie.text) # отправляем сообщение

if __name__ == '__main__':
executor.start_polling(dp, skip_updates = True)









Итак, на этом первый урок заканчивается. Кому не сложно - поддержите. Если что-то не поняли - жду вас у себя в лс. Всем хорошего дня
4YZD2yz.gif
 

Jakkan

Участник клуба
Регистрация
12 Авг 2020
Сообщения
917
Реакции
30
Сойдёт,те кто начинают курить aiogram (Такие как я), хотелось бы чтобы больше пример функции и принципа их работы.
А так тред хороший автору респект
 

Overrated

Опытный user
Регистрация
10 Мар 2022
Сообщения
780
Реакции
86
Jakkan написал(а):
Сойдёт,те кто начинают курить aiogram (Такие как я), хотелось бы чтобы больше пример функции и принципа их работы.
А так тред хороший автору респект
Хорошо, в будущем постараюсь подробнее расписывать)
 

CardsMan

Опытный user
Регистрация
13 Дек 2021
Сообщения
415
Реакции
32
Норм статья, по полочкам, чётко и по делу
 

Willwood

Опытный user
Регистрация
13 Фев 2020
Сообщения
673
Реакции
51
Давно хотел разобраться в этой штуке, надеюсь продолжишь постить туториалы)
 

GenaReshala

Опытный user
Регистрация
1 Окт 2021
Сообщения
790
Реакции
18
Спасибо огромное за гайд!
 

krabs

Интересующийся
Регистрация
28 Апр 2021
Сообщения
49
Реакции
1
Когда второй урок, учитель?)
 
Сверху Снизу