Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) DocuSign Add One Document to a Draft EnvelopeSee more DocuSign ExamplesDemonstrates how to add one document to a DocuSign draft envelope. For more information, see https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/envelopedocuments/updatelist/
load ./chilkat.dll # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set http [new_CkHttp] # Load a previously obtained OAuth2 access token. set jsonToken [new_CkJsonObject] set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/docusign.json"] if {$success == 0} then { puts [CkJsonObject_lastErrorText $jsonToken] delete_CkHttp $http delete_CkJsonObject $jsonToken exit } # Adds the "Authorization: Bearer eyJ0eXAi.....UE8Kl_V8KroQ" header. CkHttp_put_AuthToken $http [CkJsonObject_stringOf $jsonToken "access_token"] # Send the following request. # Make sure to use your own account ID (obtained from Get Docusign User Account Information) # PUT https://demo.docusign.net/restapi/v2.1/accounts/<account ID>/envelopes/<envelope ID>/documents HTTP/1.1 # Expect: 100-continue # Accept: application/json # Cache-Control: no-cache # Authorization: Bearer eyJ0eX... # Content-Length: ... # Content-Type: application/json # # { # "documents": [ # { # "documentId": "1", # "name": "project_xyz.pdf", # "pages": "1", # "documentBase64": "<insert base64 content here>" # } # ] # } set bd1 [new_CkBinData] set success [CkBinData_LoadFile $bd1 "qa_data/pdf/project_xyz.pdf"] set json [new_CkJsonObject] CkJsonObject_UpdateString $json "documents[0].documentId" "1" CkJsonObject_UpdateString $json "documents[0].name" "project_xyz.pdf" CkJsonObject_UpdateString $json "documents[0].pages" "1" CkJsonObject_UpdateString $json "documents[0].documentBase64" [CkBinData_getEncoded $bd1 "base64"] set sbJson [new_CkStringBuilder] CkJsonObject_put_EmitCompact $json 0 CkJsonObject_EmitSb $json $sbJson CkHttp_SetRequestHeader $http "Expect" "100-continue" CkHttp_SetRequestHeader $http "Cache-Control" "no-cache" CkHttp_SetRequestHeader $http "Accept" "application/json" # Use your own account ID here. CkHttp_SetUrlVar $http "accountId" "7f3f65ed-5e87-418d-94c1-92499ddc8252" # Use the envelope ID returned by DocuSign when creating the draft envelope). CkHttp_SetUrlVar $http "envelopeId" "0b437b95-cc50-475f-8dec-65bae9f27d09" set url "https://demo.docusign.net/restapi/v2.1/accounts/{$accountId}/envelopes/{$envelopeId}/documents" # resp is a CkHttpResponse set resp [CkHttp_PTextSb $http "PUT" $url $sbJson "utf-8" "application/json" 0 0] if {[CkHttp_get_LastMethodSuccess $http] == 0} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkBinData $bd1 delete_CkJsonObject $json delete_CkStringBuilder $sbJson exit } set jResp [new_CkJsonObject] CkJsonObject_Load $jResp [CkHttpResponse_bodyStr $resp] CkJsonObject_put_EmitCompact $jResp 0 puts "Response Body:" puts [CkJsonObject_emit $jResp] # If you get a 401 response status code, it's likely you need to refresh the DocuSign OAuth2 token). set respStatusCode [CkHttpResponse_get_StatusCode $resp] puts "Response Status Code = $respStatusCode" if {$respStatusCode >= 400} then { puts "Response Header:" puts [CkHttpResponse_header $resp] puts "Failed." delete_CkHttpResponse $resp delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkBinData $bd1 delete_CkJsonObject $json delete_CkStringBuilder $sbJson delete_CkJsonObject $jResp exit } delete_CkHttpResponse $resp # Sample JSON response: # (Sample code for parsing the JSON response is shown below) # { # "envelopeId": "da9fb811-e6a4-48c0-a9fb-81ed18b989af", # "envelopeDocuments": [ # { # "documentId": "1", # "documentIdGuid": "38e919fc-0a77-4b0c-9da0-e3530f4e6fc7", # "name": "project_xyz.pdf", # "type": "content", # "uri": "/envelopes/da9fb811-e6a4-48c0-a9fb-81ed18b989af/documents/1", # "order": "3", # "containsPdfFormFields": "false", # "templateRequired": "false", # "authoritativeCopy": "false" # } # ] # } # Sample code for parsing the JSON response... # Use the following online tool to generate parsing code from sample JSON: # Generate Parsing Code from JSON set envelopeId [CkJsonObject_stringOf $jResp "envelopeId"] set i 0 set count_i [CkJsonObject_SizeOfArray $jResp "envelopeDocuments"] while {$i < $count_i} { CkJsonObject_put_I $jResp $i set documentId [CkJsonObject_stringOf $jResp "envelopeDocuments[i].documentId"] set documentIdGuid [CkJsonObject_stringOf $jResp "envelopeDocuments[i].documentIdGuid"] set name [CkJsonObject_stringOf $jResp "envelopeDocuments[i].name"] set v_type [CkJsonObject_stringOf $jResp "envelopeDocuments[i].type"] set uri [CkJsonObject_stringOf $jResp "envelopeDocuments[i].uri"] set order [CkJsonObject_stringOf $jResp "envelopeDocuments[i].order"] set containsPdfFormFields [CkJsonObject_stringOf $jResp "envelopeDocuments[i].containsPdfFormFields"] set templateRequired [CkJsonObject_stringOf $jResp "envelopeDocuments[i].templateRequired"] set authoritativeCopy [CkJsonObject_stringOf $jResp "envelopeDocuments[i].authoritativeCopy"] set i [expr $i + 1] } delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkBinData $bd1 delete_CkJsonObject $json delete_CkStringBuilder $sbJson delete_CkJsonObject $jResp |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.