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"
}
}
Скопировано!