telegram bot on pyrogram #1
Выполнять вызовы API с помощью Pyrogram очень просто. Вот базовый пример, который мы рассмотрим шаг за шагом:
from pyrogram import Client
app = Client("my_account")
async def main():
async with app:
await app.send_message("me", "Hi!")
app.run(main())Давайте начнем с импорта клиентского класса.
from pyrogram import Client
Теперь создайте экземпляр нового клиентского объекта, “my_account” - это имя сеанса по вашему выбору.
app = Client("my_account")Асинхронные методы должны вызываться в асинхронном контексте. Здесь мы определяем асинхронную функцию и помещаем наш код внутрь. Также обратите внимание на ключевое слово await перед вызовом метода; это требуется для всех асинхронных методов.
Контекстный менеджер
Оператор async with запускает контекстный менеджер, который используется в качестве ярлыка для запуска, выполнения и остановки клиента асинхронно. Он делает это путем автоматического вызова start() и stop() более удобным способом, который также изящно останавливает клиент, даже в случае необработанных исключений в вашем коде.
Ниже приведен тот же пример, что и выше, но без использования контекстного менеджера:
from pyrogram import Client
app = Client("my_account")
async def main():
await app.start()
await app.send_message("me", "Hi!")
await app.stop()
app.run(main())Используя asyncio.run()
В качестве альтернативы методу run() вы можете использовать asyncio.run() Python для выполнения функции main, с одним небольшим предостережением: экземпляр клиента (и, возможно, другие ресурсы asyncio, которые вы собираетесь использовать) должен быть создан внутри функции main.
import asyncio
from pyrogram import Client
async def main():
app = Client("my_account")
async with app:
await app.send_message("me", "Hi!")
asyncio.run(main())