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

Интеграция системы голосования с вашим проектом

Аутентификация

Для доступа к API необходимо использовать API ключ. Его можно получить в настройках вашего сервера.

HTTP Request Header
Authorization: Bearer YOUR_API_KEY

Эндпоинты

GET /api/v1/servers/{server_id}/votes

Параметры запроса

Параметр Тип Описание
period string Период (day, week, month, all)
page integer Номер страницы

Пример ответа

JSON
{
    "data": [
        {
            "id": 123,
            "username": "Player1",
            "voted_at": "2024-03-10T15:30:00Z",
            "ip": "192.168.1.1"
        }
    ],
    "meta": {
        "current_page": 1,
        "total": 50,
        "per_page": 15,
        "last_page": 4
    }
}

Примеры интеграции

PHP

PHP
// PHP пример
$apiKey = 'YOUR_API_KEY';
$serverId = 123;

$ch = curl_init();
curl_setopt_array($ch, [
    CURLOPT_URL => "https://api.example.com/v1/servers/{$serverId}/votes",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        "Authorization: Bearer {$apiKey}",
        "Accept: application/json"
    ]
]);

$response = curl_exec($ch);
$data = json_decode($response, true);

if ($data && isset($data['data'])) {
    foreach ($data['data'] as $vote) {
        echo "Игрок {$vote['username']} проголосовал " .
             date('d.m.Y H:i', strtotime($vote['voted_at']));
    }
}

curl_close($ch);

Laravel

PHP/Laravel
use Illuminate\Support\Facades\Http;

$response = Http::withToken('YOUR_API_KEY')
    ->get("https://api.example.com/v1/servers/{$serverId}/votes");

if ($response->successful()) {
    $votes = $response->json('data');
    foreach ($votes as $vote) {
        echo "Игрок {$vote['username']} проголосовал " .
             Carbon::parse($vote['voted_at'])->format('d.m.Y H:i');
    }
}

JavaScript

JavaScript
const apiKey = 'YOUR_API_KEY';
const serverId = 123;

async function getVotes() {
    try {
        const response = await fetch(`https://api.example.com/v1/servers/${serverId}/votes`, {
            headers: {
                'Authorization': `Bearer ${apiKey}`,
                'Accept': 'application/json'
            }
        });

        const data = await response.json();

        // Обновляем UI
        const votesList = document.getElementById('votes-list');
        votesList.innerHTML = data.data
            .map(vote => `
                
${vote.username} проголосовал ${new Date(vote.voted_at).toLocaleString()}
`) .join(''); } catch (error) { console.error('Ошибка при получении голосов:', error); } } // Обновляем каждые 5 минут getVotes(); setInterval(getVotes, 5 * 60 * 1000);

Webhooks

Вы можете настроить webhook URL в панели управления сервером. При каждом новом голосе мы отправим POST запрос на указанный URL со следующими данными:

Webhook Payload
{
    "event": "vote.created",
    "server_id": 123,
    "data": {
        "username": "Player1",
        "voted_at": "2024-03-10T15:30:00Z",
        "ip": "192.168.1.1"
    }
}
Скопировано!