← telegram.ebalo.lol

Telegram Bot API — Документация

Что это

Собственный (self-hosted) сервер Telegram Bot API на базе официального бинарника telegram-bot-api. Он полностью совместим с API api.telegram.org — все методы, параметры и ответы те же, но у сервера есть важные отличия:

Адрес сервера

https://telegram.ebalo.lol/bot<TOKEN>/<method>

Вместо <TOKEN> — токен твоего бота, вместо <method> — имя метода (например getMe, sendMessage, sendDocument). Формат полностью совпадает с официальным: api.telegram.org/bot<TOKEN>/<method>.

Быстрая проверка, что сервер жив и токен верный:

curl "https://telegram.ebalo.lol/botYOUR_BOT_TOKEN/getMe"

Как подключить бота

Достаточно поменять адрес API на https://telegram.ebalo.lol — код бота не меняется.

aiogram (Python)

from aiogram import Bot
from aiogram.client.session.aiohttp import AiohttpSession
from aiogram.client.telegram import TelegramAPIServer

API = TelegramAPIServer.from_base("https://telegram.ebalo.lol")
bot = Bot(token="YOUR_BOT_TOKEN", session=AiohttpSession(api=API))

telebot / pyTelegramBotAPI (Python)

import telebot

bot = telebot.TeleBot("YOUR_BOT_TOKEN", api_server="https://telegram.ebalo.lol")

python-telegram-bot (Python)

import telegram

bot = telegram.Bot(token="YOUR_BOT_TOKEN", base_url="https://telegram.ebalo.lol/bot")

grammY (JavaScript / TypeScript / Deno)

import { Bot } from "https://deno.land/x/grammy/mod.ts";

const bot = new Bot("YOUR_BOT_TOKEN", {
  client: { apiRoot: "https://telegram.ebalo.lol" }
});

Go (go-telegram-bot-api)

import tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"

bot, err := tgbotapi.NewBotAPIWithAPIEndpoint("YOUR_BOT_TOKEN", "https://telegram.ebalo.lol/bot")

PHP (Telegram Bot API SDK)

use Telegram\Bot\Api;

$telegram = new Api('YOUR_BOT_TOKEN', false, 'https://telegram.ebalo.lol/bot');

Java (TelegramBots)

TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class, "https://telegram.ebalo.lol/bot");
botsApi.registerBot(new MyBot());

curl (без библиотеки)

curl "https://telegram.ebalo.lol/botYOUR_BOT_TOKEN/getMe"
Если у библиотеки нет отдельной опции сервера — почти всегда можно передать базовый URL: https://telegram.ebalo.lol или https://telegram.ebalo.lol/bot, в зависимости от библиотеки (попробуй оба варианта).

Лимиты файлов

Главное отличие от официального API — размер файлов:

Операцияapi.telegram.orgtelegram.ebalo.lol
Отправка файла ботомдо 50 МБдо 2000 МБ (2 ГБ)
Скачивание файла ботомдо 20 МБдо 2000 МБ (2 ГБ)

Большие видео, архивы, длинные аудио, дампы баз — всё проходит без ошибки file is too big. Ограничение Telegram на размер медиа в чатах остаётся обычным — сервер лишь не обрезает его дополнительно.

Скорость

Замеры на файле 100 МБ:

СценарийРезультат
Загрузка (бот → Telegram) через этот API~10 МБ/с
Скачивание через домен (из России)~10 МБ/с

Сервер расположен в Европе, канал до серверов Telegram прямой. Скорость зависит от текущей загрузки и расстояния до серверов Telegram, но для личного использования этого более чем достаточно.

Доступ из России

Официальный api.telegram.org в РФ блокируется и часто не резолвится вовсе, поэтому стандартные боты требуют VPN или прокси. Этот сервер размещён на собственном хостинге и доступен из РФ напрямую — никаких обходных средств не нужно. Связь с серверами Telegram идёт по защищённому MTProto (порт 443), который в РФ не блокируется.

Файлы

Метод getFile возвращает путь к файлу, дальше файл скачивается по стандартной схеме:

https://telegram.ebalo.lol/file/bot<TOKEN>/<file_path>

Пример:

curl "https://telegram.ebalo.lol/botYOUR_BOT_TOKEN/getFile?file_id=..."

Методы

Поддерживаются все методы официального Bot API:
getUpdates · sendMessage · sendPhoto · sendVideo · sendDocument · sendAudio · sendVoice · sendMediaGroup · editMessageText · answerCallbackQuery · getFile · getMe · setMyCommands · sendChatAction и все остальные.

Для приёма сообщений лучше использовать long polling (getUpdates) — как в примерах выше. Вебхуки тоже поддерживаются, но для личного бота проще и надёжнее polling.

Частые вопросы

Нужен ли VPN?

Нет. Сервер доступен из РФ напрямую через HTTPS.

Токен от официального бота подойдёт?

Да. Токен тот же, что зарегистрирован у @BotFather, и работает так же.

Это изменит поведение бота?

Нет. Все методы, параметры и ответы идентичны официальным.

Файлы реально до 2 ГБ?

Да, сервер настроен на лимит 2 ГБ на файл.

Кто может пользоваться?

Любой, у кого есть токен бота. Методы и файлы защищены токеном — без него запросы отклоняются (404).

Безопасность и доверие

Что важно знать про этот сервер:

Доверять или нет — твой выбор. Здесь нет посредников, но и гарантий никто не даёт: это частная инфраструктура. Токены, переписка и файлы остаются между тобой и серверами Telegram.

Сервер: telegram.ebalo.lol · Telegram Bot API (self-hosted) · сделано лично для себя