API для разработчиков
API для разработчиков
Публичные API-эндпоинты для интеграции сторонних плагинов и приложений.
Информация о пользователе
GET /api/user/infoВозвращает информацию о текущем пользователе — авторизация, дата экспирации, платформа.
Определение пользователя
Проверяется в порядке приоритета:
- Cookie
lampac_token— отправляется браузером автоматически - Query
?token=<TOKEN>— явная передача токена - Query
?uid=<UID>— по device UID (lampac_unic_id)
Ответ (авторизован)
{
"platform": "alcopac",
"version": "0.3.0",
"authorized": true,
"expires_at": "2026-06-01T00:00:00Z",
"days_left": 75,
"tg_username": "username"
}Ответ (не авторизован)
{
"platform": "alcopac",
"version": "0.3.0",
"authorized": false
}Поля
| Поле | Тип | Описание |
|---|---|---|
platform | string | Всегда "alcopac" — отличает от lampac |
version | string | Версия сервера |
authorized | bool | true если токен валиден и не истёк |
expires_at | string | RFC 3339 дата экспирации (только при authorized: true) |
days_left | int | Дней до экспирации (только при authorized: true) |
tg_username | string | Telegram username или "promo:P-XXXXXX" для промокодов |
Пример использования (Lampa-плагин)
// Cookie отправляется автоматически
fetch('/api/user/info')
.then(r => r.json())
.then(data => {
if (data.platform !== 'alcopac') return;
if (!data.authorized) return;
if (data.days_left <= 10) {
// Показать предупреждение об экспирации
}
});
// Или по UID (если cookie недоступен)
var uid = Lampa.Storage.get('lampac_unic_id', '');
fetch('/api/user/info?uid=' + uid)
.then(r => r.json())
.then(function(data) { /* ... */ });Определение платформы
Для определения Al(co)pac на клиенте:
// Способ 1: глобальная переменная (после загрузки on.js)
if (window.alcopac) {
// Это Al(co)pac
}
// Способ 2: через API
fetch('/api/user/info')
.then(r => r.json())
.then(data => {
if (data.platform === 'alcopac') {
// Это Al(co)pac
}
});Промокоды
См. Промокоды для полного описания API генерации и активации промокодов.