Fuente
about aiogram | Local Bot API ServerВихідний код Bot API Server (BAS) є відкритим - te...
542 Vistas/Alcance
2024-10-14 11:23
Mensaje №48
🦾 Local Bot API Server
Вихідний код Bot API Server (BAS) є відкритим - telegram-bot-api. Його можна запустити локально та надсилати запити на свій власний сервер замість https://api.telegram.org🔥 Переваги бота, що працює з локальним BAS • Завантаження файлів будь-якого розміру• Надсилання файлів розміром до 2 ГБ• Можна надсилати файли, використовуючи їхній локальний шлях і схему файлового URI• Дозволяється використовувати HTTP URL для вебхуку• Можна брати будь-які локальні IP та порти для вебхуку• Ліміт max_webhook_connections розширюється до 100_000 (замість 100)• Абсолютний локальний шлях отримується як значення поля file_path без необхідності завантажувати файл після запиту getFile👉 Локальний BAS може покращити продуктивність ботів за рахунок більш низького пінгу та розширених лімітів✏️ Загальні концепти🦾 BAS це - додатковий рівнень абстракції для взаємодії з Telegram API у вигляді акаунта бота. Він є зручною реалізацією RestAPI для розробників і працює як фронт-енд для Telegram API. Зробити свій такий набагато складніше, BAS бере на себе інтерфейси Telegram API та роботу з MTProto. Всі боти взаємодіють з BAS і можуть працювати з ним на одному сервері☑️ Global Bot API Server - звичайні боти взаємодіють з серверами Telegram через екземпляр telegram-bot-api, що обслуговується офіційноСам же користувач ніколи не взаємодіє з BAS напряму (тобто користувацький додаток Telegram ніколи не підключається безпосередньо до сервера, на якому запущений BAS). Всі комунікації проходять через сервери Telegram, які внутрішньо пересилають їх двом залученим клієнтам MTProto: • додатку Telegram, що використовує користувач• екземпляру BAS, що працює під капотом☑️ telegram-bot-api точно такий самий сервер, з яким спілкуються боти на api.telegram.org. Тут немає ніяких додаткових або прибраних шарів. Боти працюватимуть набагато швидше, якщо переключаться на локальний BAS, розташований у відповідному регіоні. Покращити продуктивність також може робота з локальними файлами і більша пропускна здатність для вебхуків🔌 Використання BAS 1. Генератор інструкцій для збірки серверу2. Необхідно дістати api_id та api_hash свого аканту телеграм та вказати їх як аргументи (--api-id, --api-hash) чи змінні середовища (TELEGRAM_API_ID, TELEGRAM_API_HASH)3. Щоб підключені до серверу боти мали розширені ліміти та інші функції, недоступні на https://api.telegram.org, обов'язково додай аргумент --local4. BAS приймає лише HTTP-запити, тому для обробки HTTPS-запитів потрібно використовувати проксі з термінацією TLS5. За замовчуванням BAS запускається на порту 8081, який можна змінити аргументом --http-port📌 Примітки • Мігрувати бота на локальний сервер• Перемістити бота з одного BAS на інший• Всі файли зберігаються на серверах Telegram, а не на BAS. Але можливо, що BAS кешує файли (чи щось подібне)• Є неофіційний Docker образ BAS від розробників aiogram• На api.telegram.org заборонено використовувати адреси webhook тільки для IPv6. Очікується, що вони працюватимуть якщо BAS запущено в --local режимі• getMe не слід використовувати для тестування продуктивності сервера. Сервер негайно відповідає на getMe, не викликаючи жодних інших мережевих запитів
📚 Using a local bot api server📖 Bot api server general questions
Вихідний код Bot API Server (BAS) є відкритим - telegram-bot-api. Його можна запустити локально та надсилати запити на свій власний сервер замість https://api.telegram.org🔥 Переваги бота, що працює з локальним BAS • Завантаження файлів будь-якого розміру• Надсилання файлів розміром до 2 ГБ• Можна надсилати файли, використовуючи їхній локальний шлях і схему файлового URI• Дозволяється використовувати HTTP URL для вебхуку• Можна брати будь-які локальні IP та порти для вебхуку• Ліміт max_webhook_connections розширюється до 100_000 (замість 100)• Абсолютний локальний шлях отримується як значення поля file_path без необхідності завантажувати файл після запиту getFile👉 Локальний BAS може покращити продуктивність ботів за рахунок більш низького пінгу та розширених лімітів✏️ Загальні концепти🦾 BAS це - додатковий рівнень абстракції для взаємодії з Telegram API у вигляді акаунта бота. Він є зручною реалізацією RestAPI для розробників і працює як фронт-енд для Telegram API. Зробити свій такий набагато складніше, BAS бере на себе інтерфейси Telegram API та роботу з MTProto. Всі боти взаємодіють з BAS і можуть працювати з ним на одному сервері☑️ Global Bot API Server - звичайні боти взаємодіють з серверами Telegram через екземпляр telegram-bot-api, що обслуговується офіційноСам же користувач ніколи не взаємодіє з BAS напряму (тобто користувацький додаток Telegram ніколи не підключається безпосередньо до сервера, на якому запущений BAS). Всі комунікації проходять через сервери Telegram, які внутрішньо пересилають їх двом залученим клієнтам MTProto: • додатку Telegram, що використовує користувач• екземпляру BAS, що працює під капотом☑️ telegram-bot-api точно такий самий сервер, з яким спілкуються боти на api.telegram.org. Тут немає ніяких додаткових або прибраних шарів. Боти працюватимуть набагато швидше, якщо переключаться на локальний BAS, розташований у відповідному регіоні. Покращити продуктивність також може робота з локальними файлами і більша пропускна здатність для вебхуків🔌 Використання BAS 1. Генератор інструкцій для збірки серверу2. Необхідно дістати api_id та api_hash свого аканту телеграм та вказати їх як аргументи (--api-id, --api-hash) чи змінні середовища (TELEGRAM_API_ID, TELEGRAM_API_HASH)3. Щоб підключені до серверу боти мали розширені ліміти та інші функції, недоступні на https://api.telegram.org, обов'язково додай аргумент --local4. BAS приймає лише HTTP-запити, тому для обробки HTTPS-запитів потрібно використовувати проксі з термінацією TLS5. За замовчуванням BAS запускається на порту 8081, який можна змінити аргументом --http-port📌 Примітки • Мігрувати бота на локальний сервер• Перемістити бота з одного BAS на інший• Всі файли зберігаються на серверах Telegram, а не на BAS. Але можливо, що BAS кешує файли (чи щось подібне)• Є неофіційний Docker образ BAS від розробників aiogram• На api.telegram.org заборонено використовувати адреси webhook тільки для IPv6. Очікується, що вони працюватимуть якщо BAS запущено в --local режимі• getMe не слід використовувати для тестування продуктивності сервера. Сервер негайно відповідає на getMe, не викликаючи жодних інших мережевих запитів
📚 Using a local bot api server📖 Bot api server general questions