## Сводка комментариев постов

`GET /v1/chats/messages/comments`

Возвращает сводку по веткам комментариев для указанных постов канала. Ветка комментариев — отдельный чат, привязанный к посту.

## Параметры

| Параметр | Тип | Обяз. | По умолч. | Описание |
|----------|-----|:-----:|-----------|---------|
| `messageIds` (query) | string | да | — | ID постов одного канала через запятую, от 1 до 100 ID: `845,846`. Посты канала — [Чтение сообщений](/docs/chats/messages/list) |

Любой другой параметр и повторно переданный `messageIds` отклоняются с `400 INVALID_PARAMS`.

## Примеры

### curl — личный ключ

```bash
curl "https://vibecode.bitrix24.tech/v1/chats/messages/comments?messageIds=845,846" \
  -H "X-Api-Key: YOUR_API_KEY"
```

### curl — OAuth-приложение

```bash
curl "https://vibecode.bitrix24.tech/v1/chats/messages/comments?messageIds=845,846" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

### JavaScript — личный ключ

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/messages/comments?messageIds=845,846', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data } = await res.json()
console.log('Посты с комментариями:', data.commentInfo.map((c) => c.messageId))
```

### JavaScript — OAuth-приложение

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/messages/comments?messageIds=845,846', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()
console.log('Посты с комментариями:', data.commentInfo.map((c) => c.messageId))
```

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

| Поле | Тип | Описание |
|------|-----|---------|
| `success` | boolean | Всегда `true` при успехе |
| `data.commentInfo` | array | По элементу на пост, у которого есть ветка комментариев |
| `data.commentInfo[].messageId` | number | ID поста |
| `data.commentInfo[].chatId` | number | ID чата комментариев |
| `data.commentInfo[].dialogId` | string | ID диалога чата комментариев, `chatXXX`. Комментарии ветки — [Чтение сообщений](/docs/chats/messages/list) |
| `data.commentInfo[].messageCount` | number | Число сообщений ветки. Ветка открывается системным сообщением, поэтому у ветки без комментариев здесь `1` |
| `data.commentInfo[].lastUserIds` | array | ID последних комментаторов. Их данные — в `data.usersShort` |
| `data.commentInfo[].isUserSubscribed` | boolean | `true` — вы следите за комментариями поста |
| `data.usersShort` | array | Краткие данные комментаторов |
| `data.usersShort[].id` | number | ID пользователя |
| `data.usersShort[].name` | string | Имя пользователя |
| `data.usersShort[].avatar` | string | URL аватара |
| `data.usersShort[].color` | string | Цвет пользователя в мессенджере, `#rrggbb` |
| `data.usersShort[].type` | string | Тип пользователя, например `user` |

## Пример ответа

```json
{
  "success": true,
  "data": {
    "usersShort": [
      { "id": 7, "name": "Анна Смирнова", "avatar": "https://cdn.example.com/avatar.jpg", "color": "#df532d", "type": "user" }
    ],
    "commentInfo": [
      {
        "chatId": 2001,
        "dialogId": "chat2001",
        "messageId": 845,
        "lastUserIds": [7],
        "messageCount": 2,
        "isUserSubscribed": true
      },
      {
        "chatId": 2003,
        "dialogId": "chat2003",
        "messageId": 846,
        "lastUserIds": [],
        "messageCount": 1,
        "isUserSubscribed": true
      }
    ]
  }
}
```

## Пример ответа при ошибке

422 — посты из разных каналов:

```json
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "MESSAGES_IN_DIFFERENT_CHAT_ERROR",
    "b24Code": "MESSAGES_IN_DIFFERENT_CHAT_ERROR"
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|---------|
| 400 | `INVALID_PARAMS` | `messageIds` не передан, пуст или передан повторно, в нём больше 100 элементов или элемент не положительное целое, либо передан другой параметр. Проверяется до обращения к Битрикс24 |
| 404 | `ENTITY_NOT_FOUND` | Битрикс24 вернул общий код «не найдено» или ошибку с текстом «не найдено». Код портала — в `error.b24Code` |
| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку, код портала — в `error.b24Code`. `MESSAGE_NOT_FOUND` — сообщения с таким ID нет, `MESSAGES_IN_DIFFERENT_CHAT_ERROR` — посты из разных каналов |
| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `im` |
| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов Битрикс24 |

Полный список общих ошибок API — [Ошибки](/docs/errors).

## Известные особенности

**Ветка появляется вместе с постом.** Ветка заводится, как только пост отправлен в канал, ещё до первого комментария.

**Пост без ветки пропускается без ошибки.** Пересланный пост в `data.commentInfo` не попадает. Если все `messageIds` из чата, который не канал, `data.commentInfo` пустой.

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

- [Отметить прочитанными все комментарии канала](/docs/chats/messages/comments-read-all)
- [Следить за комментариями поста](/docs/chats/messages/comments-subscription-create)
- [Перестать следить за комментариями поста](/docs/chats/messages/comments-subscription-delete)
- [Сообщения вокруг сообщения](/docs/chats/messages/context)
