Примеры использования 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