## Получить настройки уведомлений

`GET /v1/notifications/settings`

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

## Параметры

| Параметр | Тип | Обяз. | Описание |
|----------|-----|:-----:|----------|
| `userId` (query) | number | нет | ID сотрудника, чьи настройки прочитать, — положительное целое число. Список: [`GET /v1/users`](/docs/entities/users/list). Без параметра — сотрудник, от имени которого сделан вызов. Настройки другого сотрудника доступны только администратору Битрикс24 |

## Примеры

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

```bash
curl "https://vibecode.bitrix24.tech/v1/notifications/settings" \
  -H "X-Api-Key: YOUR_API_KEY"
```

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

```bash
curl "https://vibecode.bitrix24.tech/v1/notifications/settings" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"
```

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

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/notifications/settings', {
  headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})

const { data } = await res.json()
const im = data.find((m) => m.id === 'im')
console.log(im?.notices.map((n) => `${n.id}: site=${n.site} mail=${n.mail} push=${n.push}`))
```

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

```javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/notifications/settings', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

const { data } = await res.json()
console.log('Модулей:', data.length)
```

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

| Поле | Тип | Описание |
|------|-----|----------|
| `success` | boolean | Всегда `true` при успехе |
| `data` | array | Модули портала с настраиваемыми уведомлениями |
| `data[].id` | string | Идентификатор модуля. Совпадает с `notifyModule` уведомления в [ленте](/docs/notifications/list). Это же значение передаётся в поле `module` при [изменении настройки](/docs/notifications/settings/update) и в [условиях групп уведомлений](/docs/notifications/groups/conditions-create) |
| `data[].label` | string | Название модуля |
| `data[].notices` | array | События модуля |
| `data[].notices[].id` | string | Идентификатор события. Совпадает с `notifyEvent` уведомления в ленте |
| `data[].notices[].label` | string | Название события |
| `data[].notices[].site` | boolean | Канал «Битрикс24 на компьютере и в браузере». `true` — уведомления о событии приходят по этому каналу |
| `data[].notices[].mail` | boolean | Канал «Электронная почта» |
| `data[].notices[].push` | boolean | Канал «Push-уведомления в мобильном приложении» |
| `data[].notices[].disabled` | array | Каналы события, которые нельзя изменить: `site`, `mail`, `push`. Значение такого канала задаёт портал: `true` или `false` |

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

Показаны два модуля, в каждом — часть событий. Набор модулей и событий зависит от портала.

HTTP 200:

```json
{
  "success": true,
  "data": [
    {
      "id": "im",
      "label": "Чат и звонки",
      "notices": [
        {
          "id": "message",
          "label": "Сообщения в личных чатах",
          "site": true,
          "mail": false,
          "push": false,
          "disabled": ["site"]
        },
        {
          "id": "like",
          "label": "Реакции на ваши сообщения",
          "site": false,
          "mail": false,
          "push": false,
          "disabled": ["push"]
        }
      ]
    },
    {
      "id": "bizproc",
      "label": "Бизнес-процессы",
      "notices": [
        {
          "id": "activity",
          "label": "Уведомления из бизнес-процессов",
          "site": true,
          "mail": false,
          "push": false,
          "disabled": []
        },
        {
          "id": "wi_locked",
          "label": "Процесс завершился некорректно",
          "site": true,
          "mail": false,
          "push": false,
          "disabled": ["push"]
        }
      ]
    }
  ]
}
```

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

400 — `userId` — не положительное целое число:

```json
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "The query parameter `userId` must be a positive integer."
  }
}
```

## Ошибки

| HTTP | Код | Описание |
|------|-----|----------|
| 400 | `INVALID_PARAMS` | `userId` — не положительное целое число. Проверяется до обращения в Битрикс24 |
| 400 | `INVALID_PARAMS` | `userId` передан больше одного раза или со скобками, например `userId[]=5` |
| 400 | `INVALID_PARAMS` | Передан параметр запроса, отличный от `userId`. Допустимые параметры перечислены в `message` |
| 401 | `TOKEN_MISSING` | У ключа нет настроенных токенов |
| 403 | `SCOPE_DENIED` | У ключа нет скоупа `im` |
| 422 | `BITRIX_ERROR` | `userId` указывает на другого сотрудника, а у сотрудника, от имени которого сделан вызов, нет прав администратора Битрикс24. Код портала `SETTINGS_ACCESS_DENIED` — в поле `error.b24Code` |
| 502 | `ME_ALIAS_RESOLUTION_FAILED` | `userId` не передан, и определить сотрудника, от имени которого сделан вызов, не удалось. Настройки не запрашивались |

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

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

- Для администратора несуществующий `userId` не даёт ошибки: приходят настройки по умолчанию. Успешный ответ не подтверждает, что сотрудник с таким ID есть на портале. Проверить сотрудника можно через [`GET /v1/users/:id`](/docs/entities/users/get).

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

- [Изменить настройку уведомления](/docs/notifications/settings/update)
- [Сменить режим настроек уведомлений](/docs/notifications/settings/scheme)
- [Настройки уведомлений](/docs/notifications/settings)
- [Группы уведомлений](/docs/notifications/groups)
- [Лента уведомлений](/docs/notifications/list)
