172 lines
3.8 KiB
Markdown
172 lines
3.8 KiB
Markdown
# API документация eng_bot_metrics
|
||
|
||
## Базовый URL
|
||
|
||
```
|
||
http://localhost:8000
|
||
```
|
||
|
||
---
|
||
|
||
## Эндпоинты
|
||
|
||
### 1. Дашборд статистики
|
||
|
||
```
|
||
GET /
|
||
```
|
||
|
||
**Описание:** Главная страница с визуальной статистикой кликов.
|
||
|
||
**Отображает:**
|
||
- Общее количество переходов в бота и канал
|
||
- Статистика за сегодня
|
||
- Статистика за последнюю неделю
|
||
- График переходов за последние 30 дней
|
||
- Последние 20 событий
|
||
|
||
**Ответ:** HTML страница
|
||
|
||
---
|
||
|
||
### 2. Трекинг перехода в бота
|
||
|
||
```
|
||
POST /api/track/bot/
|
||
```
|
||
|
||
**Описание:** Записывает событие перехода пользователя в Telegram бота.
|
||
|
||
**Метод:** `POST`
|
||
|
||
**Заголовки:**
|
||
```
|
||
Content-Type: application/json
|
||
```
|
||
|
||
**Тело запроса:** Не требуется (можно отправить пустой POST)
|
||
|
||
**Автоматически сохраняет:**
|
||
- IP адрес пользователя
|
||
- User-Agent браузера
|
||
- Referrer (откуда пришёл пользователь)
|
||
- Временная метка
|
||
|
||
**Успешный ответ:**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"event": "bot"
|
||
}
|
||
```
|
||
|
||
**Пример использования (JavaScript):**
|
||
```javascript
|
||
fetch('/api/track/bot/', {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json'
|
||
}
|
||
});
|
||
```
|
||
|
||
**Пример использования (curl):**
|
||
```bash
|
||
curl -X POST http://localhost:8000/api/track/bot/
|
||
```
|
||
|
||
---
|
||
|
||
### 3. Трекинг перехода в канал
|
||
|
||
```
|
||
POST /api/track/channel/
|
||
```
|
||
|
||
**Описание:** Записывает событие перехода пользователя в Telegram канал.
|
||
|
||
**Метод:** `POST`
|
||
|
||
**Заголовки:**
|
||
```
|
||
Content-Type: application/json
|
||
```
|
||
|
||
**Тело запроса:** Не требуется (можно отправить пустой POST)
|
||
|
||
**Автоматически сохраняет:**
|
||
- IP адрес пользователя
|
||
- User-Agent браузера
|
||
- Referrer (откуда пришёл пользователь)
|
||
- Временная метка
|
||
|
||
**Успешный ответ:**
|
||
```json
|
||
{
|
||
"status": "ok",
|
||
"event": "channel"
|
||
}
|
||
```
|
||
|
||
**Пример использования (JavaScript):**
|
||
```javascript
|
||
fetch('/api/track/channel/', {
|
||
method: 'POST',
|
||
headers: {
|
||
'Content-Type': 'application/json'
|
||
}
|
||
});
|
||
```
|
||
|
||
**Пример использования (curl):**
|
||
```bash
|
||
curl -X POST http://localhost:8000/api/track/channel/
|
||
```
|
||
|
||
---
|
||
|
||
### 4. Админ-панель Django
|
||
|
||
```
|
||
GET /admin/
|
||
```
|
||
|
||
**Описание:** Стандартная админ-панель Django для управления данными.
|
||
|
||
**Требует:** Авторизация суперпользователя
|
||
|
||
**Создание суперпользователя:**
|
||
```bash
|
||
./deploy.sh createsuperuser
|
||
```
|
||
|
||
---
|
||
|
||
## Пример интеграции на лендинге
|
||
|
||
```html
|
||
<a href="https://t.me/your_bot" onclick="trackBot()">Перейти в бота</a>
|
||
<a href="https://t.me/your_channel" onclick="trackChannel()">Перейти в канал</a>
|
||
|
||
<script>
|
||
function trackBot() {
|
||
fetch('/api/track/bot/', { method: 'POST' });
|
||
}
|
||
|
||
function trackChannel() {
|
||
fetch('/api/track/channel/', { method: 'POST' });
|
||
}
|
||
</script>
|
||
```
|
||
|
||
---
|
||
|
||
## Сводная таблица
|
||
|
||
| URL | Метод | Описание |
|
||
|-----|-------|----------|
|
||
| `/` | GET | Дашборд со статистикой |
|
||
| `/api/track/bot/` | POST | Трекинг клика по боту |
|
||
| `/api/track/channel/` | POST | Трекинг клика по каналу |
|
||
| `/admin/` | GET | Админ-панель Django |
|