# Читать комментарии пользователя

По умолчанию текущий пользователь. Только администратор Б24 может выбрать другого; Б24 оставляет text пустым в этом режиме. firstId имеет приоритет над lastId; оба курсора используют ID комментария ленты.

`GET /v1/posts/comments`

**Bitrix24:** `log.blogcomment.user.get` | **Scope:** `log` | **Auth:** `X-Api-Key`

## Параметры

| Parameter | Type | Required | Description |
|---|---|---|---|
| userId | integer | no | Positive user ID; defaults to the current user |
| firstId | integer | no | Feed comment cursor; 0 allowed; takes precedence over lastId |
| lastId | integer | no | Feed comment cursor for older entries; 0 allowed |
| limit | integer | no | Default 100, positive; clamped to 1000 |

## Поля ответа

`data.comments[]`: id (лента), commentId (блог), postId, date, text, attach (ID файлов). `data.files` — массив или словарь с числовыми ID в качестве ключей. Каждый файл содержит только перечисленные ниже необязательные поля; неизвестные поля исключаются, а учётные данные вычищаются из URL.

| Поле | Тип | Описание |
|---|---|---|
| id | целое число | ID файла на Диске |
| date | строка | Дата и время файла |
| type | строка | Тип файла |
| name | строка | Имя файла |
| size | число | Размер файла в байтах |
| image | `false` или объект | Метаданные изображения; объект содержит необязательные числовые поля `width` и `height` |
| authorId | целое число | ID пользователя-автора |
| authorName | строка | Отображаемое имя автора |
| urlPreview | строка или `null` | URL предпросмотра |
| urlShow | строка | URL для просмотра |
| urlDownload | строка | Вычищенный URL скачивания из Битрикс24; только метаданные, а не вызываемый API-адрес |

Форма массива сохраняет позиции файлов. В форме словаря ключами служат положительные числовые ID файлов. `files: []` и `files: {}` остаются допустимыми пустыми формами; значения `image: false` и `urlPreview: null` сохраняются.

`urlShow` и `urlDownload` — только метаданные Битрикс24. Они могут быть вычищены и не должны повторно использоваться как API-адреса. Этот `log`-эндпоинт не предоставляет скачивание файлов. Эндпоинт таймлайна (`GET /v1/timelines/{commentId}/files/{fileRef}/download`) требует скоуп `crm` и ID комментария таймлайна; возвращаемый здесь `id` записи ленты нельзя подставлять вместо `commentId`.

```json
{
  "success": true,
  "data": {
    "comments": [],
    "files": []
  }
}
```

## Примеры

```bash
curl -X GET "https://vibecode.bitrix24.tech/v1/posts/comments" -H "X-Api-Key: vibe_api_DUMMY_personal"
```

```bash
curl -X GET "https://vibecode.bitrix24.tech/v1/posts/comments" -H "X-Api-Key: vibe_app_DUMMY_oauth" -H "Authorization: Bearer DUMMY_SESSION"
```

```javascript
const response = await fetch("https://vibecode.bitrix24.tech/v1/posts/comments", {
  method: "GET", headers: { "X-Api-Key": "vibe_api_DUMMY_personal" }
});
const result = await response.json();
```

```javascript
const response = await fetch("https://vibecode.bitrix24.tech/v1/posts/comments", {
  method: "GET", headers: { "X-Api-Key": "vibe_app_DUMMY_oauth", "Authorization": "Bearer DUMMY_SESSION" }
});
const result = await response.json();
```

## Ошибки

| HTTP | Code | Meaning |
|---|---|---|
| 400 | INVALID_PARAMS | Invalid input; no Bitrix24 call |
| 401 | TOKEN_MISSING / INVALID_API_KEY | Missing tokens or unusable key |
| 403 | SCOPE_DENIED / BITRIX_ACCESS_DENIED | Missing scope, portal permission refusal, or forbidden write |
| 422 | BITRIX_ERROR | Portal business refusal or unsuccessful operation |
| 429 | BITRIX_RATE_LIMIT | Portal rate limit |
| 502 / 503 | BITRIX_ERROR | Invalid response, unavailable portal or timeout |

400: invalid input.

```json
{"success":false,"error":{"code":"INVALID_PARAMS","message":"Invalid parameter"}}
```

## Какой ID использовать

| Field | Endpoint |
|---|---|
| id (feed log comment) | DELETE /v1/feed-comments/:id |
| commentId (blog comment) + postId | DELETE /v1/posts/:id/comments/:commentId |

## Смотрите также

- [Calls](/docs/calls)
- [Feed](/docs/feed)
- [Errors](/docs/errors)
