API Чатов
Получение списка чатов
GET /api/client/chats
Возвращает список всех чатов организации.
Response (200):
{
"status": "success",
"chats": [
{
"user_id": 123456789,
"user_name": "Иван Петров",
"username": "ivan_petrov",
"last_message": "Привет!",
"last_message_time": "2026-01-10T15:30:00Z",
"unread_count": 2,
"source": "telegram",
"is_online": true
}
]
}
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
user_id | integer | ID пользователя (положительный для TG, отрицательный для виджета) |
user_name | string | Отображаемое имя |
username | string | Username в Telegram (может быть null) |
last_message | string | Последнее сообщение |
last_message_time | string | ISO 8601 время |
unread_count | integer | Количество непрочитанных |
source | string | "telegram" или "widget" |
is_online | boolean | Онлайн статус |
Пример (JavaScript)
const response = await fetch('/api/client/chats', {
credentials: 'include'
});
const { chats } = await response.json();
chats.forEach(chat => {
console.log(`${chat.user_name}: ${chat.last_message}`);
});
Получение информации о пользователе
GET /api/client/user/{user_id}
Получение детальной информации о пользователе чата.
Response (200):
{
"status": "success",
"user": {
"user_id": 123456789,
"user_name": "Иван Петров",
"username": "ivan_petrov",
"phone": "+7 999 123-45-67",
"email": "ivan@example.com",
"first_seen": "2025-12-01T10:00:00Z",
"last_seen": "2026-01-10T15:30:00Z",
"messages_count": 42,
"source": "telegram",
"lead_data": {
"name": "Иван",
"email": "ivan@example.com",
"phone": "+79991234567"
}
}
}
Поиск чатов
GET /api/client/chats/search?q={query}
Поиск по имени, username или тексту сообщений.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
q | string | Поисковый запрос |
source | string | Фильтр: "telegram", "widget" |
limit | integer | Количество результатов (по умолчанию 20) |
Response (200):
{
"status": "success",
"chats": [
{
"user_id": 123456789,
"user_name": "Иван Петров",
"match_type": "name",
"match_text": "Иван"
}
],
"total": 1
}
Отметка прочитанным
POST /api/client/chats/{user_id}/read
Отметить все сообщения чата как прочитанные.
Response (200):
{
"status": "success",
"message": "Marked as read"
}