Přejít na hlavní obsah

Aiogram: vytváření robota od nuly

  • Dobroslav Švecová
  • Praxe

V současné době hrají poslové velmi důležitou roli v našem každodenním životě. Pomáhají nám komunikovat, získávat informace o nejnovějších zprávách, nakupovat a další. Vytvoření vlastního robota, který je schopen provádět různé úkoly, může být velmi užitečná a zajímavá aktivita.

Jedním z nejoblíbenějších rámců pro vývoj posel robotů je Aiogram. Je to knihovna napsaná v jazyce Python, která Vám umožňuje vytvářet roboty pro platformy jako Telegram, Viber, Slack a další. Poskytuje uživatelsky přívětivé a snadno použitelné rozhraní pro práci s API těchto poslů.

Pomocí Aiogram můžete vytvořit robota od začátku a nakonfigurovat jej tak, aby prováděl různé úkoly. Knihovna poskytuje širokou škálu možností, včetně odesílání zpráv, práce s klávesnicemi, používání inline režimu a dalších. Můžete také nakonfigurovat zpracování příkazů a také vytvořit vlastní příkazy a obslužné rutiny událostí.

Proč Aiogram?

  1. Snadné použití: Aiogram nabízí jednoduché a intuitivní rozhraní, které vám umožní snadno vytvářet a konfigurovat roboty. Poskytuje mnoho funkcí a metod pro práci s Telegramovým API, které usnadňují vývoj a správu robota.
  2. Bohatá funkčnost: Aiogram má širokou funkčnost, která umožňuje implementaci různých funkcí pro robota. Podporuje odesílání a přijímání zpráv, klávesnici, zpracování příkazů, práci s databází a další.
  3. Asynchronita: Aiogram funguje asynchronně, což umožňuje zpracovat více dotazů najednou a výrazně zvyšuje výkon robota. To je zvláště užitečné při vývoji robotů s velkým počtem uživatelů.
  4. Otevřený a aktivně se rozvíjející projekt: Aiogram je otevřený projekt, což znamená, že můžete přispět k jeho rozvoji nebo jej upravit podle svých potřeb. Je také podporován aktivní komunitou vývojářů a je neustále aktualizován a doplněn o nové funkce.
  5. Dokumentace a příklady: Aiogram má dobře zdokumentované API a nabízí rozsáhlou dokumentaci, která obsahuje příklady použití různých funkcí a metod. To usnadňuje vývojový proces a pomáhá začátečníkům rychle se zorientovat s rámcem.

Celkově je Aiogram výkonným a pohodlným nástrojem pro vytváření robotů v telegramu v Pythonu. Nabízí široké možnosti a umožňuje vývojářům rychle a efektivně realizovat své nápady a projekty.

Základní funkce Aiogram

Knihovna Aiogram poskytuje různé možnosti pro vytváření robotů na telegramu:

1. Ovládání robota: Pomocí Aiogramu můžete svůj robot na telegramu konfigurovat a spravovat. Můžete použít různá nastavení, jako je token robota, název robota, popis a další možnosti.

2. Zpracování zpráv: Aiogram usnadňuje zpracování zpráv odeslaných uživateli. Můžete upravit zpracování různých typů zpráv, jako jsou textové zprávy, fotografie, videa, dokumenty a další.

3. Klávesnice a tlačítka: Knihovna Aiogram vám umožňuje vytvářet vlastní klávesnice a tlačítka pro pohodlnou interakci s robotem. Pomocí různých rozvržení můžete vytvářet jednoduchá tlačítka i složité klávesnice.

4. Zpracování příkazů: Aiogram poskytuje schopnost zpracovávat příkazy, které mohou uživatelé odeslat vašemu botovi. Při přijímání příkazu můžete nakonfigurovat zpracování příkazů s určitými argumenty a provést příslušné kroky.

5. Interakce s databází: S Aiogram můžete komunikovat s databází a ukládat a přijímat data o uživatelích, chatech a dalších objektech. Můžete použít různé databáze, jako je SQLite, PostgreSQL a další.

6. Práce s asynchronními operacemi: Aiogram je navržen pomocí asynchronního programování, díky kterému je robot rychlý a efektivní. Můžete provádět různé asynchronní operace, jako je odesílání zpráv, stahování souborů a další činnosti.

To jsou jen některé z hlavních funkcí, které Knihovna Aiogram poskytuje. Díky své flexibilitě a výkonným funkcím je Aiogram skvělým nástrojem pro vytváření a správu bot na telegramu.

Instalace a konfigurace Aiogram

Před zahájením práce s knihovnou Aiogram ji musíte nainstalovat do svého systému. K tomu postupujte podle následujících kroků:

  1. V případě potřeby vytvoříme virtuální prostředí pro projekt.
  2. Otevřete příkazový řádek nebo terminál a aktivujte virtuální prostředí.
  3. Spusťte příkaz pip install aiogram pro instalaci knihovny.

Po úspěšné instalaci Aiogram je nutné nakonfigurovat prostředí projektu. K tomu je třeba:

  1. Vytvořit soubor config.py v kořenové složce projektu.
  2. V souboru config.py oznamte proměnné potřebné pro provoz robota, jako je token robota, Idi Správce atd.
  3. Importovat soubor config.py v hlavním souboru projektu.

Příklad obsahu souboru config.py :

token = 'YOUR_BOT_TOKEN'admin_id = 'YOUR_ADMIN_ID'

Nyní, po instalaci a konfiguraci, můžete začít vytvářet robota pomocí Aiogram. Následující části článku se budou věnovat různým aspektům práce s touto knihovnou.

Vytvoření robota v telegramu

Chcete-li vytvořit robota na telegramu pomocí Aiogramu, musíte postupovat podle následujících kroků:

1. Nainstalujte potřebné knihovny. K tomu můžete použít správce balíčků pip a nainstalovat aiogram:

$ pip install aiogram

2. Zaregistrujte nového robota na telegramu. K tomu je třeba kontaktovat BotFather-speciální účet na telegramu, který poskytuje API pro vytváření a správu botů. Pomocí příkazu / newbot vytvořte nového robota a získejte Token API.

3. Napsat kód pro robota pomocí knihovny Aiogram. Níže je uveden příklad kódu pro vytvoření jednoduchého robota, který v reakci na příkaz /start odešle uvítací zprávu:

import loggingfrom aiogram import Bot, Dispatcher, types# Устанавливаем уровень логов на DEBUG, чтобы видеть сообщения о всеlogging.basicConfig(level=logging.DEBUG)# Инициализируем бота и диспетчераbot = Bot(token='YOUR_API_TOKEN')dp = Dispatcher(bot)# Обработчик команды /[email protected]_handler(commands=['start'])async def send_welcome(message: types.Message):await message.answer('Привет! Я бот, что могу для тебя сделать?')# Запускаем ботаif __name__ == '__main__':from aiogram import executorexecutor.start_polling(dp, skip_updates=True)

4. Spustit robota. Chcete-li to provést, můžete spustit skript s kódem, jako je příkaz python3 bot.py..

Váš robot na telegramu je nyní připraven k použití. Můžete jej přidat do skupinového chatu nebo mu napsat soukromou zprávu a na příkaz /start odpoví uvítací zprávou.

Vytvoření robota na telegramu pomocí Aiogramu je tedy poměrně jednoduché a nevyžaduje mnoho úsilí. Můžete jej snadno nakonfigurovat tak, aby implementoval různé funkce a úkoly, v závislosti na vašich potřebách a úkolech.

Registrace bot

Než začnete vytvářet robota pomocí Aiogramu, musíte jej zaregistrovat na telegramu. V této části se podíváme na všechny fáze registrace robota.

1. Otevřete Telegram a najděte robota @BotFather. Slouží k vytváření a registraci robotů na telegramu.

2. Napište mu jakoukoli uvítací zprávu ,například "Ahoj, chci vytvořit robota".

3. Dále postupujte podle pokynů, které vám BotFather nabídne. Budete muset vybrat různá nastavení pro svého robota, jako je název, popis a Avatar.

4. Po vyplnění všech potřebných údajů vám BotFather poskytne Token API. Tento token bude potřeba k provozu vašeho robota pomocí Aiogram.

5. Zkopírujte výsledný Token API a uložte jej na bezpečné místo. Nezapomeňte, že token API musí být chráněn a nepřístupný třetím stranám.

Nyní máte registrovaného robota na telegramu a jeho Token API. Pomocí tohoto tokenu budete moci nakonfigurovat interakci vašeho robota s Aiogramem.

Získání tokenu

Pro získání tokenu od BotFather postupujte podle následujících pokynů:

  1. Přejděte na Telegram a najděte v něm robota s názvem "BotFather".
  2. Začněte dialog s BotFather kliknutím na tlačítko "Start".
  3. Odešlete příkaz "/ newbot " a vytvořte nového robota.
  4. Postupujte podle pokynů BotFather a zadejte jméno svého robota a jedinečné uživatelské jméno.
  5. Po úspěšném vytvoření robota vám BotFather vydá Token. Uložte si tento token, budete jej potřebovat pro práci s robotem.

Nyní, když máte Token od BotFather, můžete jej použít k autorizaci v Aiogram a vytvoření vlastního robota.

Základní prvky Aiogram

Hlavní prvky Aiogram jsou:

PrvekPopis
BotTřída Bot představuje samotného robota a používá se k odesílání a přijímání zpráv od uživatelů. Je základním prvkem pro interakci s Telegramovým API.
DispatcherTřída Dispatcher je zodpovědná za zpracování příchozích událostí od uživatelů a správu logiky robota. Umožňuje zaznamenávat obslužné rutiny různých typů událostí, jako jsou zprávy, příkazy, tlačítka atd.
HandlerTřída Handler určuje obslužnou rutinu pro konkrétní typ událostí. Spojuje zpracování událostí s funkcí nebo metodou, která bude vyvolána, když dojde k události. Může být použit pro zpracování zpráv, příkazů, inline tlačítek atd.
MessageTřída Message je zpráva přijatá od uživatele. Obsahuje informace o textu zprávy, odesílateli, čase a dalších parametrech. Message se používá například k odesílání odpovědí na přijaté zprávy.

Práce s Aiogram je založena na registraci obslužných rutin událostí, které jsou vyvolány, když dojde k určitým událostem. Framework poskytuje praktické metody pro odesílání a přijímání zpráv, práci s klávesnicí a dalšími prvky rozhraní Telegram.

Použití základních prvků Aiogram umožňuje vývojářům vytvářet funkční roboty s jednoduchými a srozumitelnými interakcemi s uživateli.

Tvorba handlerů

Handlery v Aiogram se používají ke zpracování různých událostí a příkazů, které bot může získat. Jsou zodpovědní za zpracování příchozích zpráv, aktualizací z rozhraní Telegram API a provádění jakýchkoli akcí v reakci na tyto události.

Jednou z klíčových tříd pro vytváření handlerů je MessageHandler . Umožňuje reagovat na různé typy zpráv, jako jsou textové zprávy, zvuk, fotografie, videa a další. Pro každý typ zprávy má Aiogram svou vlastní třídu-Handler.

Jako příklad si vezměme handlerovu tvorbu pro zpracování textových zpráv. Chcete-li to provést, musíte vytvořit funkci, která bude zpracovávat příchozí zprávu, a poté tuto funkci přidat jako Handler do robota:

from aiogram import Bot, Dispatcher, typesimport asynciobot = Bot(token="TOKEN")dp = Dispatcher(bot)# Функция-хэндлер для обработки сообщенийasync def handle_text_message(message: types.Message):await message.answer("Вы отправили текстовое сообщение")# Добавление функции-хэндлера как хэндлера ботаdp.register_message_handler(handle_text_message, content_types=types.ContentTypes.TEXT)

V tomto příkladu vytváříme funkci handle_text_message, která přijímá objekt Message z aiogram jako argument. V rámci funkce používáme metodu answer objektu Message k odeslání odpovědi na přijatou zprávu. Poté tuto funkci přidáme jako handler pro zpracování textových zpráv pomocí metody register_message_handler objektu Dispatcher .

Tímto způsobem, když uživatel obdrží textovou zprávu, robot zavolá tuto funkci a v reakci pošle zprávu "poslali jste textovou zprávu".

Nyní víte, jak vytvořit Handlery pro zpracování různých typů zpráv v Aiogram. Tento mechanismus umožňuje flexibilně řídit logiku práce robota a reagovat na různé události v chatu.

Funkce inline režimu

Jednou z klíčových funkcí inline režimu je možnost poskytnout uživateli možnosti výběru pomocí tlačítek. Aiogram umožňuje vytvářet inline tlačítka s různými možnostmi, takže uživatel může snadno vybrat požadovanou možnost nebo provést konkrétní akci.

K vytvoření tlačítek používá aiogram třídu InlineKeyboardButton . Přijímá dvě povinné možnosti: text tlačítka a data kolbacku. Collback data jsou informace, které budou odeslány na server po stisknutí tlačítka. To umožňuje botovi určit, který příkaz má být proveden v reakci na akci uživatele.

Aiogram navíc poskytuje třídu InlineKeyboardMarkup, která Vám umožňuje seskupovat tlačítka jako tabulku. To je užitečné pro vytvoření nabídky s několika možnostmi výběru.

ParametrPopis
textText tlačítka
callback_dataData odeslaná na server po stisknutí tlačítka

Pro zpracování akcí uživatele v Inline režimu poskytuje aiogram třídu CallbackQueryHandler . Umožňuje botovi reagovat na stisknutí tlačítek a provádět určité akce v reakci. U každého tlačítka lze nastavit obslužnou rutinu a provádět různé příkazy v závislosti na výběru uživatele.

Inline režim v Aiogram poskytuje botovi možnost vytvářet interaktivní a flexibilní uživatelská rozhraní. Pomocí inline tlačítek a obslužných rutin může bot reagovat na akce uživatele v reálném čase a poskytnout mu pohodlnější a funkčnější funkce.