API Сообщений
Получение истории
GET /api/client/history/{user_id}
Получение истории сообщений с пользователем.
Параметры:
| Параметр | Тип | Описание |
|---|---|---|
limit | integer | Количество сообщений (по умолчанию 50) |
before | integer | ID сообщения для пагинации |
Response (200):
{
"status": "success",
"messages": [
{
"id": 1,
"text": "Привет!",
"sender": "user",
"timestamp": "2026-01-10T15:30:00Z",
"file_path": null
},
{
"id": 2,
"text": "Здравствуйте! Чем могу помочь?",
"sender": "operator",
"timestamp": "2026-01-10T15:31:00Z",
"file_path": null
}
],
"has_more": false
}
Поля сообщения
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID сообщения |
text | string | Текст сообщения |
sender | string | "user", "operator", "bot" |
timestamp | string | ISO 8601 время |
file_path | string | Путь к файлу (если есть) |
Отправка сообщения
POST /api/client/send_message
Отправка текстового сообщения пользователю.
Request:
{
"user_id": 123456789,
"message": "Ваш заказ готов к выдаче!"
}
Response (200):
{
"status": "success",
"message_id": 123
}
Пример (JavaScript)
const response = await fetch('/api/client/send_message', {
method: 'POST',
credentials: 'include',
headers: {
'Content-Type': 'application/json',
'X-CSRF-Token': csrfToken
},
body: JSON.stringify({
user_id: 123456789,
message: 'Ваш заказ готов к выдаче!'
})
});
Отправка файла
POST /api/client/send_file
Отправка файла пользователю.
Request (multipart/form-data):
| Поле | Тип | Описание |
|---|---|---|
user_id | integer | ID получателя |
file | File | Файл для отправки |
caption | string | Подпись (опционально) |
Response (200):
{
"status": "success",
"message_id": 124,
"file_path": "/files/org-id/image.webp"
}
Пример (JavaScript)
const formData = new FormData();
formData.append('user_id', '123456789');
formData.append('file', fileInput.files[0]);
formData.append('caption', 'Фото товара');
const response = await fetch('/api/client/send_file', {
method: 'POST',
credentials: 'include',
headers: {
'X-CSRF-Token': csrfToken
},
body: formData
});
Ограничения
- Максимальный размер: 5 МБ
- Разрешённые форматы: JPG, PNG, GIF, WebP, PDF, DOC, DOCX, XLS, XLSX, ZIP
- Лимит: 10 файлов в минуту
Индикатор печати
POST /api/client/typing
Отправка индикатора "печатает..." пользователю.
Request:
{
"user_id": 123456789
}
Response (200):
{
"status": "success"
}
Примечание
Индикатор автоматически исчезает через 5 секунд. Отправляйте повторно при продолжении набора текста.