Для AI-агентов: markdown этой страницы — /docs-content/chats/discovery/access.md индекс документации — /llms.txt
Проверить доступ к чату или сообщению
GET /v1/chats/access
Проверяет, может ли текущий пользователь открыть чат, сообщение или то и другое.
Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
dialogId (query) |
string | нет | Чат для проверки: chatN для группового, числовой ID пользователя для личного диалога, me — личный диалог текущего пользователя. chatN — поле id строки последних диалогов, ID пользователя — из списка пользователей |
messageId (query) |
number | нет | Сообщение для проверки — положительное целое, поле id сообщения из ленты чата |
Нужен хотя бы один из двух параметров: без обоих проверять нечего, и запрос отклоняется с 400 MISSING_PARAMS. Другие параметры и повторы отклоняются с 400 INVALID_PARAMS до обращения к Битрикс24.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/chats/access?dialogId=chat42" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/chats/access?dialogId=chat42" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/access?messageId=1002', {
headers: { 'X-Api-Key': 'YOUR_API_KEY' },
})
// Доступа нет — это ошибка, а не result: false
const canOpen = res.ok && (await res.json()).data.result === true
console.log('Сообщение доступно:', canOpen)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/chats/access?messageId=1002', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const canOpen = res.ok && (await res.json()).data.result === true
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.result |
boolean | Всегда true: доступ есть |
Пример ответа
{
"success": true,
"data": {
"result": true
}
}
Пример ответа при ошибке
422 — сообщения нет на портале:
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "MESSAGE_NOT_FOUND",
"b24Code": "MESSAGE_NOT_FOUND"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | MISSING_PARAMS |
Не передан ни dialogId, ни messageId |
| 400 | INVALID_PARAMS |
messageId не положительное целое, dialogId пустой, параметр вне dialogId и messageId или повтор параметра |
| 403 | BITRIX_ACCESS_DENIED |
Доступа к чату или сообщению нет |
| 404 | ENTITY_NOT_FOUND |
Битрикс24 вернул «не найдено». Код портала — в error.b24Code |
| 422 | BITRIX_ERROR |
Битрикс24 вернул ошибку. Код портала — в error.b24Code. CHAT_NOT_FOUND — чата нет на портале, MESSAGE_NOT_FOUND — сообщения нет |
| 502 | ME_ALIAS_RESOLUTION_FAILED |
Не удалось определить пользователя при использовании алиаса me |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа im |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ в режиме только для чтения, и запрос сделан не личным ключом сотрудника либо переданный dialogId не указывает на существующий диалог |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов Битрикс24 |
Полный список общих ошибок API — Ошибки.
Известные особенности
Проверки независимы. С обоими параметрами эндпоинт проверяет чат и сообщение по отдельности и не сверяет, что сообщение лежит в этом чате. Чтобы узнать чат сообщения, откройте чат вокруг сообщения.
Проверка может сделать вас участником. Проверка идёт тем же путём, что и открытие чата: если чат разрешает автовступление — например, чат комментариев, коллаб или чат задачи, — вызов добавляет текущего пользователя в участники. Эта точечная операция чтения доступна ключу READONLY, если это личный ключ сотрудника со скоупом im. Переданный dialogId при этом должен указывать на существующий диалог: chatN или ID пользователя из списка последних диалогов этого сотрудника. Она сама не отмечает сообщения прочитанными.