im.disk.file.commit
Добавить файл в чат
Описание
Устаревший метод
Метод оставлен для поддержки существующих интеграций. Для новой разработки используйте im.v2.File.upload: он загружает файл в чат одним вызовом, без предварительной загрузки файла через методы Диска.
Метод im.disk.file.commit добавляет файл в чат.
Для добавления файла укажите:
- один из параметров идентификатора чата — CHAT_ID или DIALOG_ID
- один из параметров идентификатора файла — FILE_ID или UPLOAD_ID
Если передать несколько параметров одновременно, метод обрабатывает только первый.
Получить идентификатор нового файла можно после загрузки методом disk.folder.upload.file. Получить идентификатор существующего файла можно методом:
- disk.storage.getchildren — если файл находится в корне хранилища
- disk.folder.getchildren — если файл находится в папке
Параметры
CHAT_ID
integer
обязательный
Идентификатор чата.
Обязателен, если не передан DIALOG_ID
DIALOG_ID
string
обязательный
Идентификатор диалога в формате:
- chatXXX — чат
- sgXXX — чат группы или проекта
- XXX — идентификатор пользователя личного чата
Обязателен, если не передан CHAT_ID
FILE_ID
integer
обязательный
Идентификатор файла на Диске. Можно передать массив.
Обязателен, если не передан UPLOAD_ID
UPLOAD_ID
integer
обязательный
Идентификатор файла на Диске. Можно передать массив.
Поддерживает дополнительный параметр AS_FILE, который позволяет отправить изображение без сжатия, в виде файла.
Обязателен, если не передан FILE_ID
MESSAGE
string
необязательный
Текст сообщения с файлом
SILENT_MODE
string
необязательный
Параметр для чата Открытых линий
Возможные значения:
- Y — отправлять уведомление клиенту
- N — не отправлять уведомление клиенту
AS_FILE
string
необязательный
Отправить как файл. Только для UPLOAD_ID.
Возможные значения:
- Y — да
- N — нет
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"CHAT_ID":1489,"FILE_ID":[5249,5250],"MESSAGE":"Документы по проекту"}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/im.disk.file.commit
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"CHAT_ID":1489,"FILE_ID":[5249,5250],"MESSAGE":"Документы по проекту","auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/im.disk.file.commit
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
type FileUploadItem = {
id: number
chatId: number
name: string
extension: string
size: number
status: string
authorId: number
authorName: string
urlPreview: string
urlShow: string
urlDownload: string
isTranscribable: boolean
isVideoNote: boolean
isVoiceNote: boolean
}
type FileModelItem = {
id: number
name: string
storageId: number
size: number
etag: string
links: {
download: string
showInGrid: string
preview: string
}
}
// Shape of the payload returned in result (match the "response handling" section of the page)
type ImDiskFileCommitResult = {
FILES: Record<string, FileUploadItem>
DISK_ID: string[]
FILE_MODELS: Record<string, FileModelItem>
MESSAGE_ID: number
}
try {
const response = await $b24.actions.v2.call.make<ImDiskFileCommitResult>({
method: 'im.disk.file.commit',
params: {
CHAT_ID: 1489,
FILE_ID: [5249, 5250],
MESSAGE: 'Project documents',
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info(result.MESSAGE_ID, result.DISK_ID, result.FILES)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function commitFileToChat() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'im.disk.file.commit',
params: {
CHAT_ID: 1489,
FILE_ID: [5249, 5250],
MESSAGE: 'Project documents',
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info(result.MESSAGE_ID, result.DISK_ID, result.FILES)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', commitFileToChat)
</script>
from b24pysdk.errors import BitrixAPIError, BitrixSDKException
try:
bitrix_response = client.im.disk.file.commit(
chat_id=1489,
file_id=[
5249,
5250,
],
message="Документы по проекту",
).response
result = bitrix_response.result
print(result)
except BitrixAPIError as error:
print(
"Ошибка Bitrix API",
f"error: {error.error}",
f"error_description: {error.error_description}",
sep="\n",
)
except BitrixSDKException as error:
print(f"Ошибка Bitrix SDK: {error.message}")
except Exception as error:
print(f"Непредвиденная ошибка: {error}")
try {
$response = $b24Service
->core
->call(
'im.disk.file.commit',
[
'CHAT_ID' => 1489,
'FILE_ID' => [5249, 5250],
'MESSAGE' => 'Документы по проекту',
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error: ' . $e->getMessage();
}
BX24.callMethod(
'im.disk.file.commit',
{
CHAT_ID: 1489,
FILE_ID: [5249, 5250],
MESSAGE: 'Документы по проекту',
},
function(result)
{
if (result.error())
{
console.error(result.error());
}
else
{
console.log(result.data());
}
}
);
require_once('crest.php');
$result = CRest::call(
'im.disk.file.commit',
[
'CHAT_ID' => 1489,
'FILE_ID' => [5249, 5250],
'MESSAGE' => 'Документы по проекту',
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "im.disk.file.commit", b24.Params{
"CHAT_ID": 1489,
"FILE_ID": []int{5249, 5250},
"MESSAGE": "Документы по проекту",
})
if err != nil {
return fmt.Errorf("im.disk.file.commit: %w", err)
}
var item struct {
MessageID b24.ID `json:"MESSAGE_ID"`
}
if err := json.Unmarshal(res.Result, &item); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println(item.MessageID)
Ответ
HTTP-статус: 200
{
"result": {
"FILES": {
"upload5249": {
"id": 5249,
"chatId": 1489,
"date": {},
"type": "file",
"name": "image.png",
"extension": "png",
"size": 2144,
"image": {
"height": 61,
"width": 72
},
"status": "done",
"progress": 100,
"authorId": 503,
"authorName": "Иван Иванов",
"urlPreview": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=5249&exact=N&_esd=hpbccd%2FZFlCVMvT8%2FoXYU%2FfMrCjiXqxIAf6V4Sv1rR0euQRiW7%2BsdhF7n1QGRL8ZBBmpuiVaX9sY2NbsyigTzBiykXGbFEbXUAmoPO8IvcdVkdoD5n6CJHZG9DZ0DRpH6i5goVbMdjo%3D&fileName=image.png",
"urlShow": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.showImage&SITE_ID=s1&humanRE=1&fileId=5249&width=1280&height=1280&signature=9f56cfa3412e55679012a6c3bef9ff391f1fc7becf6dc42bea2b8d68656934ce&exact=N&_esd=hpbccd%2FZFlCVMvT8%2FoXYU%2FfMrCjiXqxIAf6V4Sv1rR0euQRiW7%2BsdhF7n1QGRL8ZBBmpuiVaX9sY2NbsyigTzBiykXGbFEbXUAmoPO8IvcdVkdoD5n6CJHZG9DZ0DRpH6i5goVbMdjo%3D&fileName=image.png",
"urlDownload": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=5249&exact=N&_esd=hpbccd%2FZFlCVMvT8%2FoXYU%2FfMrCjiXqxIAf6V4Sv1rR0euQRiW7%2BsdhF7n1QGRL8ZBBmpuiVaX9sY2NbsyigTzBiykXGbFEbXUAmoPO8IvcdVkdoD5n6CJHZG9DZ0DRpH6i5goVbMdjo%3D&fileName=image.png",
"viewerAttrs": {
"viewer": "",
"viewerType": "image",
"src": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=5249&exact=N&_esd=hpbccd%2FZFlCVMvT8%2FoXYU%2FfMrCjiXqxIAf6V4Sv1rR0euQRiW7%2BsdhF7n1QGRL8ZBBmpuiVaX9sY2NbsyigTzBiykXGbFEbXUAmoPO8IvcdVkdoD5n6CJHZG9DZ0DRpH6i5goVbMdjo%3D&fileName=image.png",
"viewerResized": "",
"objectId": "5249",
"viewerGroupBy": "1489",
"imChatId": 1489,
"title": "image.png",
"actions": "[{\"type\":\"download\"},{\"type\":\"copyToMe\",\"text\":\"Сохранить на Диск\",\"action\":\"BXIM.disk.saveToDiskAction\",\"params\":{\"fileId\":\"5249\"},\"extension\":\"disk.viewer.actions\",\"buttonIconClass\":\"ui-btn-icon-cloud\"}]"
},
"mediaUrl": {
"preview": {
"250": "https://mysite.ru/bitrix/services/main/ajax.php?action=disk.api.file.download&SITE_ID=s1&humanRE=1&fileId=5249&exact=N&_esd=hpbccd%2FZFlCVMvT8%2FoXYU%2FfMrCjiXqxIAf6V4Sv1rR0euQRiW7%2BsdhF7n1QGRL8ZBBmpuiVaX9sY2NbsyigTzBiykXGbFEbXUAmoPO8IvcdVkdoD5n6CJHZG9DZ0DRpH6i5goVbMdjo%3D&fileName=image.png"
}
},
"isTranscribable": false,
"isVideoNote": false,
"isVoiceNote": false
}
},
"DISK_ID": [
"5249"
],
"FILE_MODELS": {
"upload5249": {
"id": 5249,
"name": "image.png",
"createTime": {},
"updateTime": {},
"deleteTime": null,
"code": "media_original",
"xmlId": null,
"storageId": 663,
"realObjectId": 5249,
"parentId": 4821,
"deletedType": 0,
"createdBy": "503",
"updatedBy": "503",
"deletedBy": "0",
"uniqueCode": "k7lj3sQxTRWSi6K93Vyh",
"typeFile": 2,
"globalContentVersion": 2,
"fileId": 57077,
"size": 2144,
"etag": "73c045036a9e96943fa57316371655c2",
"links": {
"download": "/bitrix/services/main/ajax.php?action=disk.file.download&SITE_ID=s1&fileId=5249",
"showInGrid": "/bitrix/tools/disk/focus.php?objectId=5249&action=showObjectInGrid&ncc=1",
"preview": "/bitrix/services/main/ajax.php?action=disk.api.file.showImage&SITE_ID=s1&humanRE=1&width=640&height=640&signature=8e152b3f4820b07a3f8ea79a6de60b0ae5a82a57467d08d1e8a8a399afb0330f&fileId=5249"
}
}
},
"MESSAGE_ID": 84779
},
"time": {
"start": 1772451339,
"finish": 1772451339.658828,
"duration": 0.6588280200958252,
"processing": 0,
"date_start": "2026-03-02T14:35:39+03:00",
"date_finish": "2026-03-02T14:35:39+03:00",
"operating_reset_at": 1772451939,
"operating": 0
}
}
Возвращаемые данные
result
object
Корневой объект результата (подробное описание)
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "CHAT_ID_EMPTY",
"error_description": "Chat ID can't be empty"
}
| Код | Описание | Значение |
|---|---|---|
400 |
CHAT_ID_EMPTY |
Chat ID can't be empty |
400 |
DIALOG_ID_EMPTY |
Dialog ID can't be empty |
400 |
FILES_ERROR |
List of files in not specified |
400 |
SAVE_ERROR |
Error during saving file to chat |
403 |
ACCESS_ERROR |
You do not have access to the specified dialog |

