ImperiumGuardBot Help

Примеры использования API

В этом разделе представлены практические примеры использования API ImGuardBot для различных сценариев интеграции.

Получение информации о пользователе

Запрос

GET https://guard.redguy.org/users/123456789 Authorization: Bearer your_token_here

Ответ

{ "id": 123456789, "first_name": "Иван", "last_name": "Петров", "username": "ivanpetrov", "is_bot": false, "language_code": "ru", "restrictions": [ { "id": 987654, "type": "mute", "reason": "Спам в чате", "created_at": "2023-05-15T14:30:00Z", "expires_at": "2023-05-16T14:30:00Z", "created_by": { "id": 111222333, "first_name": "Модератор", "username": "moderator" } } ] }

Получение списка ограничений

Запрос

GET https://guard.redguy.org/restrictions?limit=5&offset=0 Authorization: Bearer your_token_here

Ответ

{ "total": 42, "items": [ { "id": 987654, "user": { "id": 123456789, "first_name": "Иван", "last_name": "Петров", "username": "ivanpetrov" }, "type": "mute", "reason": "Спам в чате", "created_at": "2023-05-15T14:30:00Z", "expires_at": "2023-05-16T14:30:00Z", "created_by": { "id": 111222333, "first_name": "Модератор", "username": "moderator" } }, { "id": 987653, "user": { "id": 987654321, "first_name": "Петр", "username": "petr_ivanov" }, "type": "ban", "reason": "Нарушение правил чата", "created_at": "2023-05-14T10:15:00Z", "expires_at": null, "created_by": { "id": 111222333, "first_name": "Модератор", "username": "moderator" } } // ... остальные ограничения ] }

Создание нового ограничения

Запрос

POST https://guard.redguy.org/restrictions Authorization: Bearer your_token_here Content-Type: application/json { "user_id": 123456789, "type": "mute", "reason": "Нарушение правил чата", "duration": "2h" }

Ответ

{ "id": 987655, "user": { "id": 123456789, "first_name": "Иван", "last_name": "Петров", "username": "ivanpetrov" }, "type": "mute", "reason": "Нарушение правил чата", "created_at": "2023-05-16T09:45:00Z", "expires_at": "2023-05-16T11:45:00Z", "created_by": { "id": 444555666, "first_name": "API", "username": "api_bot" } }

Отмена ограничения

Запрос

DELETE https://guard.redguy.org/restrictions/987655 Authorization: Bearer your_token_here

Ответ

{ "success": true, "message": "Ограничение успешно отменено" }

Интеграция с внешними системами

Пример на Python

import requests API_BASE_URL = "https://guard.redguy.org" API_TOKEN = "your_token_here" headers = { "Authorization": f"Bearer {API_TOKEN}", "Content-Type": "application/json" } # Получение информации о пользователе def get_user_info(user_id): response = requests.get(f"{API_BASE_URL}/users/{user_id}", headers=headers) if response.status_code == 200: return response.json() else: print(f"Ошибка: {response.status_code}") return None # Создание ограничения def create_restriction(user_id, restriction_type, reason, duration=None): data = { "user_id": user_id, "type": restriction_type, "reason": reason } if duration: data["duration"] = duration response = requests.post(f"{API_BASE_URL}/restrictions", headers=headers, json=data) if response.status_code == 200: return response.json() else: print(f"Ошибка: {response.status_code}") return None # Пример использования user_info = get_user_info(123456789) print(f"Информация о пользователе: {user_info}") new_restriction = create_restriction(123456789, "mute", "Спам в чате", "2h") print(f"Создано новое ограничение: {new_restriction}")

Пример на JavaScript

const axios = require('axios'); const API_BASE_URL = 'https://guard.redguy.org'; const API_TOKEN = 'your_token_here'; const headers = { 'Authorization': `Bearer ${API_TOKEN}`, 'Content-Type': 'application/json' }; // Получение информации о пользователе async function getUserInfo(userId) { try { const response = await axios.get(`${API_BASE_URL}/users/${userId}`, { headers }); return response.data; } catch (error) { console.error(`Ошибка: ${error.response?.status || error.message}`); return null; } } // Создание ограничения async function createRestriction(userId, restrictionType, reason, duration = null) { const data = { user_id: userId, type: restrictionType, reason: reason }; if (duration) { data.duration = duration; } try { const response = await axios.post(`${API_BASE_URL}/restrictions`, data, { headers }); return response.data; } catch (error) { console.error(`Ошибка: ${error.response?.status || error.message}`); return null; } } // Пример использования async function example() { const userInfo = await getUserInfo(123456789); console.log(`Информация о пользователе:`, userInfo); const newRestriction = await createRestriction(123456789, 'mute', 'Спам в чате', '2h'); console.log(`Создано новое ограничение:`, newRestriction); } example();

Веб-хуки для уведомлений

ImperiumGuardBot поддерживает отправку уведомлений о событиях через веб-хуки. Для настройки веб-хука используйте API:

Запрос на создание веб-хука

POST https://guard.redguy.org/webhooks Authorization: Bearer your_token_here Content-Type: application/json { "url": "https://your-service.com/webhook", "events": ["restriction.created", "restriction.removed", "user.joined"], "secret": "your_webhook_secret" }

Ответ

{ "id": "wh_123456", "url": "https://your-service.com/webhook", "events": ["restriction.created", "restriction.removed", "user.joined"], "created_at": "2023-05-16T10:00:00Z" }

Пример получения уведомления

{ "event": "restriction.created", "timestamp": "2023-05-16T10:15:00Z", "data": { "restriction": { "id": 987655, "user": { "id": 123456789, "first_name": "Иван", "last_name": "Петров", "username": "ivanpetrov" }, "type": "mute", "reason": "Нарушение правил чата", "created_at": "2023-05-16T10:15:00Z", "expires_at": "2023-05-16T12:15:00Z", "created_by": { "id": 111222333, "first_name": "Модератор", "username": "moderator" } } } }

Обработка ошибок

API ImperiumGuardBot возвращает стандартные HTTP-коды состояния для обозначения успеха или неудачи запроса:

  • 200 OK - Запрос выполнен успешно

  • 400 Bad Request - Неверный запрос (например, отсутствуют обязательные параметры)

  • 401 Unauthorized - Отсутствует или неверный токен авторизации

  • 403 Forbidden - Недостаточно прав для выполнения операции

  • 404 Not Found - Запрашиваемый ресурс не найден

  • 429 Too Many Requests - Превышен лимит запросов

  • 500 Internal Server Error - Внутренняя ошибка сервера

Пример ответа с ошибкой

{ "error": { "code": "invalid_request", "message": "Отсутствует обязательный параметр user_id", "status": 400 } }
04 сентября 2025