HTTP API Диадок. Загружаем в Диадок любой документ. Посредством POST и GET запросов

Публикация № 978233

Обмен - Обмен с другими системами

API Диадок Контур POST запрос GET запрос

16
Поставили задачу через HTTP API Диадок (diadoc-api.kontur.ru) отправить любой файл в Диадок и подписать его (например, служебную записку в формате пдф). Посредством POST и GET запросов.

Продолжаю разбирать API Диадок. 

Для работы с HTTP API нужно получить Ключ разработчика (ddauth_api_client_id).

1. Сначала нужно авторизоваться в API и получить token.

Про авторизацию можно прочитать в моей первой статье про API Диадок:

HTTP API Диадок. Пример авторизации и обращения к методам посредством POST и GET запросов

2. Передадим документ в диадок.

Для этого используем POST- запрос метод /V3/PostMessage

В теле POST-запроса передаем json в котором содержатся двоичные данные файла и параметры.

/V3/PostMessage можно послать внешним и внутренним получателям. За это отвечает параметр IsInternal = true.

Меня интересуют внутренние получатели организации.

Чтобы послать  нужно знать   параметры: FromBoxId, FromDepartmentId, ToDepartmentId.

FromDepartmentId и ToDepartmentId: Это отделы в организации, которые можно создать через Личный кабинет. Их ID можно узнать GET-запросом методом /GetMyOrganizations.(обработка кнопка ПолучитьСтрктуруОрганизации)

После выполнения. Метод нам вернет messageId, entityId.

(обработка кнопка ОтправитьФайл)

3. Далее подписываем документ учетной записью под которой авторизируемся (ЛогинНаСайтДиадок) и отправляем его конкретному пользователю.

Для этого используем POST- запрос метод /V3/PostMessagePatch

В тело устанавливаем json с параметрами: BoxId , messageId, entityId, TargetUserId, Type.

TargetUserId можно посмотреть тут веб-версии Диадока  в раздел "Настройки и оплата" -> "Сотрудники" -> "Скачать список сотрудников" и первый столбец в скачанном файле и будет ID пользователей.

(обработка кнопка ОтправитьНаПодпись)

После выполнения метода в веб-версии Диадока  во входящих TargetUserId будет сообщение с прикрепленным файлом.

Тестировал на платформе 1С:Предприятие 8.3 (8.3.13.1513)

16

Скачать файлы

Наименование Файл Версия Размер
HTTP API Диадок. Загружаем в Диадок любой документ. Посредством POST и GET запросов.:
.epf 43,51Kb
11.01.19
7
.epf 1 43,51Kb 7 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. memb3r 28.01.19 15:50 Сейчас в теме
/ShelfUpload не используете?

С сайта Диадок:
Следует придерживаться следующей схемы использования структуры SignedContent. Если подписываемый документ имеет небольшой размер (не превышает 500Кб), его бинарное представление можно разместить непосредственно в структуре SignedContent в поле Content.

Если же размер документа не укладывается в эти ограничения, следует предварительно загрузить этот документ на «полку документов» при помощи серии вызовов ShelfUpload, а затем указать имя документа на «полке» в поле NameOnShelf структуры SignedContent.
2. memb3r 28.01.19 15:54 Сейчас в теме
- TargetUserId можно посмотреть тут веб-версии Диадока в раздел "Настройки и оплата" -> "Сотрудники" -> "Скачать список сотрудников" и первый столбец в скачанном файле и будет ID пользователей.


Список сотрудников с данными (с UserId) можно получить с помощью:
GET /GetEmployees
3. John_d 539 28.01.19 16:07 Сейчас в теме
(2) Спасибо, может пригодиться.
4. Vida 10 16.05.19 08:51 Сейчас в теме
Добрый день!

Я правильно понимаю, что перед PostMessage сначала вызывается ShelfUpload?

Если вызвать ShelfUpload и указать параметр nameOnShelf=__userId__/xyz, где __userId__ - это строковый литерал, то физическое имя файла будет user_private_files/{userId}/xyz. {userId} возьмется из текущего авторизационного токена. К таким файлам можно получить доступ через ShelfDownload, указав nameOnShelf=__userId__/xyz.


Не понимаю откуда брать параметры xyz.
Смотрела в браузере эти цифры каждый раз разные, но откуда инициализируются?
Оставьте свое сообщение