Заметки
Файл в сообщении: ATTACH или im.disk.file.commit
В описании im.message.add есть вложения, но это не означает, что в любое место запроса можно передать ID файла Диска. Сначала определите, что нужно показать: ссылку на внешний файл или обычное файловое сообщение чата.
Показать ссылку на файл
Блок FILE внутри ATTACH описывает файл по URL. Краткая форма запроса к im.message.add:
{
"DIALOG_ID": "chat25",
"MESSAGE": "Описание формата обмена",
"ATTACH": [
{ "FILE": [{
"NAME": "exchange.pdf",
"LINK": "https://files.example.com/exchange.pdf"
}] }
]
} Домен files.example.com в примере вымышленный. Нужен настоящий адрес, доступный получателям. Такой блок не загружает файл в хранилище портала. ID в полной форме ATTACH — идентификатор вложения, а не замена ID файла Диска.
Отправить файл Диска
Для уже загруженного файла используется im.disk.file.commit. Метод создаёт файловое сообщение:
{
"DIALOG_ID": "chat25",
"FILE_ID": [101, 102],
"MESSAGE": "Документы по заявке"
} FILE_ID здесь — ID объекта Диска. Новый файл сначала загружают через disk.folder.uploadfile, затем передают полученный ID в commit. Получать отдельный ID сообщения через im.message.add для этого примера не нужно.
Не подменяйте ID объекта Диска значением b_file.ID: это разные идентификаторы.
Документация: Формат ATTACH; im.disk.file.commit.