13 KiB
API Документация
Обзор
API предоставляет функциональность для работы со стикерами в Telegram, включая генерацию изображений, создание стикерпаков и управление ими. Также API поддерживает отслеживание позиций задач в очереди.
Базовый URL: https://stickerserver.gymnasticstuff.uk
Эндпоинты
Проверка работоспособности
GET /health
Проверяет работоспособность API.
Ответ (200 OK):
"string"
Управление пользователями
POST /register
Регистрирует нового пользователя в системе.
Тело запроса:
{
"user_id": 123456789,
"username": "example_user",
"chat_id": 123456789,
"balance": 0
}
Параметры:
user_id(integer, обязательный): Уникальный ID пользователя (например, из Telegram)username(string, обязательный): Имя пользователяchat_id(integer, обязательный): ID чатаbalance(integer, опциональный, по умолчанию 0): Начальный баланс пользователя
Ответ (201 Created):
{
"user_id": 123456789,
"username": "example_user",
"chat_id": 123456789,
"balance": 0
}
Ошибки:
- 422 Validation Error: Ошибка валидации данных
GET /users/{user_id}
Получает информацию о пользователе по его ID.
Параметры пути:
user_id(integer, обязательный): ID пользователя
Ответ (200 OK):
{
"user_id": 123456789,
"username": "example_user",
"chat_id": 123456789,
"balance": 0
}
Ошибки:
- 404 Not Found: Пользователь не найден
- 422 Validation Error: Ошибка валидации данных
Генерация изображений и управление очередью
POST /generate_image
Создает задачу на генерацию изображения с использованием ComfyUI.
Тело запроса:
{
"tag": "image_generation",
"user_id": 123456789,
"workflow": {
// Объект workflow для ComfyUI
}
}
Параметры:
tag(string, обязательный): Тег для типа задачи (допустимое значение: "image_generation")user_id(integer, обязательный): ID пользователяworkflow(object, обязательный): Объект workflow для ComfyUI
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
GET /user_pending_tasks/{user_id}
Получает список задач пользователя в статусе PENDING с их позициями в очереди.
Параметры пути:
user_id(integer, обязательный): ID пользователя
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
GET /task_position/{task_id}
Получает текущую позицию задачи в очереди.
Параметры пути:
task_id(integer, обязательный): ID задачи
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
GET /images_links/{user_id}
Получает список ссылок на изображения пользователя.
Параметры пути:
user_id(integer, обязательный): ID пользователя
Ответ (200 OK):
[
{
"id": 1,
"link": "file_id_from_telegram",
"prompt_id": "prompt_id_from_comfyui",
"status": "COMPLETED",
"created_at": "2025-03-12T12:00:00",
"sticker_set_id": null
}
]
Ошибки:
- 404 Not Found: Пользователь не найден
- 422 Validation Error: Ошибка валидации данных
Управление стикерами
POST /upload_sticker
Загружает файл стикера на сервер Telegram.
Тело запроса:
{
"user_id": 123456789,
"link": "https://example.com/image.png"
}
Параметры:
user_id(integer, обязательный): ID пользователяlink(string, обязательный): URL или путь к файлу стикера
Ответ (200 OK):
{}
Ошибки:
- 422 Validation Error: Ошибка валидации данных
POST /create_sticker_set
Создает новый набор стикеров.
Тело запроса:
{
"user_id": 123456789,
"sticker_set_name": "example_set",
"title": "Example Sticker Set",
"file_id": "file_id_from_telegram",
"emojis": "😀",
"is_animated": false,
"is_video": false
}
Параметры:
user_id(integer, обязательный): ID пользователяsticker_set_name(string, обязательный): Название набора стикеров (без суффикса _by_bot)title(string, обязательный): Заголовок набора стикеровfile_id(string, обязательный): File_id загруженного стикераemojis(string, обязательный): Список эмодзи для стикераis_animated(boolean, опциональный, по умолчанию false): Флаг анимированного стикераis_video(boolean, опциональный, по умолчанию false): Флаг видео-стикера
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
POST /add_sticker_to_set
Добавляет стикер в существующий набор.
Тело запроса:
{
"user_id": 123456789,
"sticker_set_name": "example_set",
"title": "Example Sticker Set",
"file_id": "file_id_from_telegram",
"emojis": "😀",
"is_animated": false,
"is_video": false
}
Параметры:
user_id(integer, обязательный): ID пользователяsticker_set_name(string, обязательный): Название набора стикеров (без суффикса _by_bot)title(string, обязательный): Заголовок набора стикеровfile_id(string, обязательный): File_id загруженного стикераemojis(string, обязательный): Список эмодзи для стикераis_animated(boolean, опциональный, по умолчанию false): Флаг анимированного стикераis_video(boolean, опциональный, по умолчанию false): Флаг видео-стикера
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
GET /check_sticker_set_name/{sticker_set_name}
Проверяет, существует ли набор стикеров с указанным именем.
Параметры пути:
sticker_set_name(string, обязательный): Название набора стикеров
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
POST /delete_sticker_from_set
Удаляет стикер из набора.
Тело запроса:
{
"file_id": "file_id_from_telegram"
}
Параметры:
file_id(string, обязательный): File_id стикера
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
POST /set_sticker_position_in_set
Изменяет позицию стикера в наборе.
Тело запроса:
{
"file_id": "file_id_from_telegram",
"position": 0
}
Параметры:
file_id(string, обязательный): File_id стикераposition(integer, обязательный): Новая позиция стикера (0 - первая позиция)
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
POST /delete_sticker_set
Удаляет набор стикеров.
Тело запроса:
{
"sticker_set_name": "example_set_by_bot_name"
}
Параметры:
sticker_set_name(string, обязательный): Полное название набора стикеров (включая суффикс _by_bot)
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
POST /create_sticker_set_db
Создает запись о стикерпаке в базе данных.
Тело запроса:
{
"user_id": 123456789,
"sticker_set_name": "example_set_by_bot_name"
}
Параметры:
user_id(integer, обязательный): ID пользователяsticker_set_name(string, обязательный): Полное название набора стикеров (включая суффикс _by_bot)
Ответ (201 Created):
{
"id": 1,
"set_name": "example_set_by_bot_name",
"user_id": 123456789
}
Ошибки:
- 422 Validation Error: Ошибка валидации данных
GET /user_sticker_sets/{user_id}
Возвращает список названий всех стикерпаков пользователя.
Параметры пути:
user_id(integer, обязательный): ID пользователя
Ответ (200 OK):
[
{
"id": 1,
"set_name": "example_set_by_bot_name",
"user_id": 123456789
}
]
Ошибки:
- 422 Validation Error: Ошибка валидации данных
Прокси для Telegram API
GET /stickers/packs/{pack_name}
Получает информацию о стикерпаке из Telegram.
Параметры пути:
pack_name(string, обязательный): Название стикерпака
Ответ (200 OK):
{}
Ошибки:
- 422 Validation Error: Ошибка валидации данных
GET /stickers/proxy/sticker/{file_id}
Прокси для получения изображения стикера без раскрытия токена бота.
Параметры пути:
file_id(string, обязательный): File ID стикера
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
POST /stickers/test/upload
Тестовый эндпоинт для загрузки изображения в Telegram.
Форма запроса:
user_id(integer, обязательный): Telegram ID пользователяimage_url(string, обязательный): URL изображения для загрузки
Ответ (200 OK):
"string"
Ошибки:
- 422 Validation Error: Ошибка валидации данных
Модели данных
UserBase
{
"user_id": 1,
"username": "john_doe",
"chat_id": 123456789,
"balance": 100
}
UserCreate
{
"user_id": 1,
"username": "john_doe",
"chat_id": 123456789,
"balance": 100
}
ImageBase
{
"id": 0,
"link": "string",
"prompt_id": "string",
"status": "string",
"created_at": "2025-03-19T12:15:53.248Z",
"sticker_set_id": 0
}
StickerUploadRequest
{
"user_id": 0,
"link": "string"
}
StickerSetRequest
{
"user_id": 0,
"sticker_set_name": "string",
"title": "string",
"file_id": "string",
"emojis": "string",
"is_animated": false,
"is_video": false
}
StickerFileID
{
"file_id": "string"
}
StickerSetPosition
{
"file_id": "string",
"position": 0
}
StickerSetName
{
"sticker_set_name": "string"
}
GenerateImageRequest
{
"tag": "image_generation",
"user_id": 0,
"workflow": {}
}
CreateStickerSetDBRequest
{
"user_id": 0,
"sticker_set_name": "string"
}
StickerSetResponse
{
"id": 0,
"set_name": "string",
"user_id": 0
}
HTTPValidationError
{
"detail": [
{
"loc": [
"string",
0
],
"msg": "string",
"type": "string"
}
]
}
ValidationError
{
"loc": [
"string",
0
],
"msg": "string",
"type": "string"
}