Sample code for 30+ languages & platforms
AutoIt

Yousign Procedure Creation Basic Mode Upload File

See more Yousign Examples

Demonstrates the 1st step of Yousign procedure creation, which is to upload a PDF file.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.

$oHttp = ObjCreate("Chilkat.Http")

; Implements the following CURL command:

; curl --location --request POST 'https://staging-api.yousign.com/files' \
; --header 'Authorization: Bearer YOUR_API_KEY' \
; --header 'Content-Type: application/json' \
; --data-raw '{
;     "name": "The best name for my file.pdf",
;     "content": "JVBERi0..." }'

; Load a PDF file to be uploaded.
$oPdfData = ObjCreate("Chilkat.BinData")
$bSuccess = $oPdfData.LoadFile("qa_data/pdf/helloWorld.pdf")
If ($bSuccess = False) Then
    ConsoleWrite("Failed to load PDF local file." & @CRLF)
    Exit
EndIf

; Use the following online tool to generate HTTP code from a CURL command
; Convert a cURL Command to HTTP Source Code

; Use this online tool to generate code from sample JSON:
; Generate Code to Create JSON

; The following JSON is sent in the request body.

; {
;   "name": "The best name for my file.pdf",
;   "content": "JVBERi0..."
; }

$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.UpdateString("name","helloWorld.pdf")
$oJson.UpdateString("content",$oPdfData.GetEncoded("base64"))

; Adds the "Authorization: Bearer YOUR_API_KEY" header.
$oHttp.AuthToken = "YOUR_API_KEY"

$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpJson("POST","https://staging-api.yousign.com/files",$oJson,"application/json",$oResp)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

$oSbResponseBody = ObjCreate("Chilkat.StringBuilder")
$oResp.GetBodySb($oSbResponseBody)
$oJResp = ObjCreate("Chilkat.JsonObject")
$oJResp.LoadSb($oSbResponseBody)
$oJResp.EmitCompact = False

ConsoleWrite("Response Body:" & @CRLF)
ConsoleWrite($oJResp.Emit() & @CRLF)

Local $iRespStatusCode = $oResp.StatusCode
ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF)
If ($iRespStatusCode >= 400) Then
    ConsoleWrite("Response Header:" & @CRLF)
    ConsoleWrite($oResp.Header & @CRLF)
    ConsoleWrite("Failed." & @CRLF)
    Exit
EndIf

; Sample JSON response:
; (Sample code for parsing the JSON response is shown below)

; {
;   "id": "/files/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
;   "name": "The best name for my file.pdf",
;   "type": "signable",
;   "contentType": "application/pdf",
;   "description": null,
;   "createdAt": "2018-12-01T11:36:20+01:00",
;   "updatedAt": "2018-12-01T11:36:20+01:00",
;   "sha256": "bb57ae2b2ca6ad0133a699350d1a6f6c8cdfde3cf872cf526585d306e4675cc2",
;   "metadata": [
;   ],
;   "workspace": "/workspaces/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
;   "creator": null,
;   "protected": false,
;   "position": 0,
;   "parent": null
; }

; Sample code for parsing the JSON response...
; Use the following online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON

Local $sId = $oJResp.StringOf("id")
Local $sName = $oJResp.StringOf("name")
Local $sV_type = $oJResp.StringOf("type")
Local $sContentType = $oJResp.StringOf("contentType")
Local $sDescription = $oJResp.StringOf("description")
Local $sCreatedAt = $oJResp.StringOf("createdAt")
Local $sUpdatedAt = $oJResp.StringOf("updatedAt")
Local $sha256 = $oJResp.StringOf("sha256")
Local $sWorkspace = $oJResp.StringOf("workspace")
Local $sCreator = $oJResp.StringOf("creator")
Local $bV_protected = $oJResp.BoolOf("protected")
Local $iPosition = $oJResp.IntOf("position")
Local $sParent = $oJResp.StringOf("parent")
Local $i = 0
Local $iCount_i = $oJResp.SizeOfArray("metadata")
While $i < $iCount_i
    $oJResp.I = $i
    $i = $i + 1
Wend