← К заметкам

Заметки

Файл в сообщении: 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.