Мы используем Python и библиотеку запросов, чтобы добавить файлы PDF в DocuSign конверты с использованием Add document
метода REST API v2:Как предоставить DocuSign PDF?
response = requests.put(
'<base URL>/envelopes/<envelope ID>/documents/<next document ID>',
files={'document': <the PDF file object>}, # <- added to the request's body
headers=self._get_headers(
{
'Content-Disposition': 'document; filename="the-file.pdf";'
}
),
timeout=60
)
Это работал у нас в большинстве случаев, за исключением того, что около 1 в 100 PDF-файлы не допускается через API. Когда эта проблема возникает, мы сообщаем нашим пользователям загружать PDF-файлы непосредственно через пользовательский интерфейс DocuSign, который работает. Это побудило нас (с помощью поддержки) посмотреть ссылку Document params
, которая появляется над примером запроса на странице Add document
, указанной выше. На странице показан атрибут documentBase64
и ряд других полей. Как я могу предоставить документ в этом формате со всеми указанными полями? Должен ли я заменить файл в моем вызове выше на files={'document': <JSON-encoded object>}
или? Я не могу понять, как добавить документ OTHER, чем тот, который мы сейчас делаем. Есть ли другой способ, который мне не хватает?
Вы видели [Пошаговые руководства API DocuSign] (http://iodocs.docusign.com/apiwalkthroughs)? Они имеют 9 распространенных случаев использования REST api, каждый из которых написан на 6 разных языках, причем одним из них является Python. Если вы посмотрите на прохождение №4 (середина слева от сетки), вы увидите, как этот пример предоставляет документ. Одно из различий, которое я вижу, находится в заголовке 'Content-Disposition', устанавливая его' file' вместо 'document'. Мне интересно, если это имеет какое-либо отношение к вашей случайной ошибке? – Ergin
@ Ergin - спасибо, я их видел, но им не хватает рабочего документа «Добавить документ». IIRC, директор по интеграции интеграции DocuSign, сказал мне, что мне нужно предоставить '<любое имя, которое я называю вложением>' в заголовке 'Content-Disposition', что в моем случае является просто« документом ». Кажется маловероятным, что именование вложения '' document ''приведет к ошибке в малой части времени. –
О, хорошо, я неправильно понял первый параметр заголовка Content-Disposition, не понимал, что это просто имя вложения. Хм, есть ли какие-то различия между документами, что у них проблемы с загрузкой через api и другие 99, которые, похоже, работают? Что-нибудь иное в байтах или настройках безопасности в этих PDF-файлах? – Ergin