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

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

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

Overrated

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

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
Сообщения
884
Реакции
30
Сойдёт,те кто начинают курить aiogram (Такие как я), хотелось бы чтобы больше пример функции и принципа их работы.
А так тред хороший автору респект
 

Overrated

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

CardsMan

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

Willwood

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

GenaReshala

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

krabs

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