Přímé volání Signi API z prostředí Microsoft

 

Přímé volání Signi API

Výhodou přímého volání Signi API je flexibilita, novinky v Signi API jsou ihned dostupné pro využití. Je možné paralelně zpracovávat více dokumentů na jednou. Je možné ho použít jak z cloudových tenantů tak on premise instalací. Pro volání z Microsoft Power Automate se využijí operace HTTP a Webhook.

Před voláním API je třeba si vygenerovat v Signi aplikaci API Klíč pro pracovní prostor / workspace, do kterého budete dokumenty k podpisu předávat viz Generování API klíče.  Volat pak můžete kterýkoliv z End Pointů Signi API.

Následující příklady ukazují volání SIgni API ze tří různých technologií Microsoftu

  1. Microsoft Power Automate,

  2. kód v .NET,

  3. kód ve Visual Basic for Application - VBA.

Příklad volání Signi API z MS Power Automate

MS Power Automate je integrační služba, která je součástí technologické platformy Microsoft Power Platform. Příklad volání Signi API z MS Power Automate se skládá ze tří flow:

  • Signi Demo - Podepsání dokumentu ze vzoru- vyvolá podpis dokumentu vytvořeného ze vzoru “Testovací smlouva k podpisu” uloženém v Signi a zpřístupněném v testovacím workspace Demo API,

  • Signi Demo - Podepsání PDF souboru - předá k podpisu PDF soubor,

  • Signi Demo - Webhook - vytvoří v prostředí MS Power Automate webhook pro přijetí výsledků podepsání dokumentu, odkazuje se na ně první flow.

Příkladová flow v MS Power Automate

Pro vyzkoušení je na produkčním prostředí Signi workspace "Demo API" a má API klíč = “71c4123d242bdd38047bee838d17e3367dc3ea6748d0975217ce501e834a224c83cab8afd35c9b0e6ade806b7987fae80f97f5c8253cfbb9089cf21f” , při svých voláních zaměňte tento API klíč za API klíč svého workspace, který získáte po objednání služby "Integrace API" a Generování API klíče.

Jednotlivé flow z příkladů níže si můžete stáhnout zde.

Vytvoření flow pro podepsání dokumentu ze vzoru

Vytvořte nové flow přes  MS Power Automate > Create (v levém panelu) > Instant cloud flow (pro ruční spuštění ) > Manually create flow.

Vložit do flow operaci přes Next step > HTTP  (vybrat tento typ operace).

Parametry operace HTTP pro vyvolání vzoru obdobně jako v Signi HELP > API Integrace > Příklad 3 - Předání podkladů pro vzor

  • Požadavek typu POST

  • Adresa EndPointu je https://api.signi.com/api/v1/contract/?type=template

  • V HEAD pro autentizaci API klíč v poli s názvem x-api-key 

  • Pro účely dema je na produkčním prostředí Signi https://api.signi.com je workspace "Demo API" a má API klíč = “71c4123d242bdd38047bee838d17e3367dc3ea6748d0975217ce501e834a224c83cab8afd35c9b0e6ade806b7987fae80f97f5c8253cfbb9089cf21f” , při svých voláních zaměňte tento API klíč za API klíč svého workspace, který získáte po objednání služby "Integrace API" a Generování API klíče.

  • V body je potřebný JSON se všemi parametry pro vytvoření dokumentu, url webhooku odpovídá webhooku vytvořeném dále, lze přidat po otestování tohoto flow.

  • E-mail demo+counterparty@signi.com si můžete změnit na svůj.

{   "settings": {     "signing_order": "proposers_before_counterparties",     "autosign_proposers": "V Praze"   },   "people": [     {       "is_proposer": true,       "email": "demo@signi.com",       "contract_role": "sign"     },     {       "is_proposer": false,       "party_order": 1,       "email": "demo+counterparty@signi.com",       "contract_role": "sign",       "person_type": "nature",       "first_name": "John",       "last_name": "Doe2"     }   ],   "webhooks": [     {       "state": "completed",       "url": "https://prod-174.westeurope.logic.azure.com:443/workflows/4255c88e046844319c27fdf997ee7eed/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=lJhO1j7pXPUUzQ6apYhS1TJmI6HoEyN4NS_cBMI-6rw"     }   ],   "template": {     "id": "7v1",     "parameters": [       {         "id": "112",         "value": "Hnutí za digitalní revoluci"       },       {         "id": "131",         "value": "Chci"       },       {         "id": "411",         "value": "V šíření zpráv"       },       {         "id": "421",         "value": "27.5.2021"       },       {         "id": "431",         "value": "v Praze"       }     ]   } }

Uložit flow přes Save.

Pro testování zvolit  Test a Run Flow .

Výsledek odpovědi Signi API na požadavek přístupný v MS Power Automate: 

Vytvoření flow pro podepsání PDF souboru

Vytvořte nové flow přes  MS Power Automate > Create (v levém panelu) > Instant cloud flow (pro ruční spuštění ) > Manually create flow.

Ve flow pro podepsání PDF souboru je třeba nejprve do flow získat soubor k podpisu, zde používame operátor Get file content .

Následně vyvoláme opet operátor HTTP, Parametry operace HTTP pro vyvolání vzoru obdobně jako v Signi HELP > API Integrace > Příklad 2 - Předání PDF dokumentu k podpisu

  • Požadavek typu POST

  • Adresa EndPointu je https://api.signi.com/api/v1/contract/?type=doc

  • V HEAD pro autentizaci API klíč v poli s názvem x-api-key 

  • Pro účely dema je na produkčním prostředí Signi https://api.signi.com je workspace "Demo API" a má API klíč = “71c4123d242bdd38047bee838d17e3367dc3ea6748d0975217ce501e834a224c83cab8afd35c9b0e6ade806b7987fae80f97f5c8253cfbb9089cf21f” , při svých voláních zaměňte tento API klíč za API klíč svého workspace, který získáte po objednání služby "Integrace API" a Generování API klíče.

  • V body je potřebný JSON se všemi parametry pro vytvoření dokumentu, url webhooku odpovídá webhooku vytvořeném dále, lze přidat po otestování tohoto flow.

  • E-mail demo+counterparty@signi.com si můžete změnit na svůj.

{ "$content-type": "multipart/form-data", "$multipart": [ { "headers": { "Content-Disposition": "form-data; name=\"metadata\"; filename=\"data.json\"" }, "body": { "name": "test", "number": "123456", "locale": "cs", "webhooks": [ { "state": "completed", "url": "https://prod-174.westeurope.logic.azure.com:443/workflows/4255c88e046844319c27fdf997ee7eed/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=lJhO1j7pXPUUzQ6apYhS1TJmI6HoEyN4NS_cBMI-6rw" } ], "settings": { "signing_order": "one_at_a_time", "missing_positions": "append_to_the_end" }, "people": [ { "is_proposer": true, "party_order": 1, "email": "demo@signi.com", "contract_role": "sign" }, { "is_proposer": false, "party_order": 2, "email": "demo+counterparty@signi.com", "phone": "723653670", "first_name": "John", "last_name": "Doe#1", "contract_role": "sign", "person_type": "nature" } ], "file": "file_key" } }, { "headers": { "Content-Disposition": "form-data; name=\"file_key\"; filename=\"test.pdf\"" }, "body": { "$content-type": "application/pdf", "$content": "@{body('Get_file_content')?['body']}" } } ] }

v JSONu se potřebujeme odkázat na soubor získaný v předchozím kroku , k tomu použijeme dynamický obsah File Content.

….

Další průběh testování je shodný s flow pro vytvoření dokumentu ze vzoru.

Vytvoření flow pro webhook pro přijetí výsledku podepsání

Vytvořte nové flow přes MS Power Automate v levém panelu > Create > Instant cloud flow pro ruční spuštění  > Manually create flow

Vložte do flow operaci přes Next step > When an HTTP request is received  (vybrat tento typ operace).

Jako šablonu dat, které webhook dostane, je třeba vložit příklad JSONu viz příklad na https://signi.docs.apiary.io/#reference/webhooky/ze-vzoru-s-prilohami tj, 

{     "type": "object",     "properties": {         "contract_id": {             "type": "integer"         },         "state": {             "type": "string"         },         "file": {             "type": "string"         },         "attachments": {             "type": "array",             "items": {                 "type": "object",                 "properties": {                     "contract_id": {                         "type": "integer"                     },                     "state": {                         "type": "string"                     },                     "file": {                         "type": "string"                     }                 },                 "required": [                     "contract_id",                     "state",                     "file"                 ]             }         }     } }



Jako druhá je do flow vložená operace Parse JSON , kde se řekne, že se bude zpracovávat kód z Body a jako příklad JSON schématu se bere to, co dostává webhook ze Signi viz výše. Zároveň se ikonou Copy získá URL webhooku , který se následně vyplní jako parametr volání Signi v prvním a druhém flow příkladu.

Výsledek volání webhooku lze zjistit v MS Power Automate v historii flow Signi Demo - webhook,  na stránce detailu dole zobrazit v  historii poslední volání , kde jsou vidět výsledky volání.

Příklad kódu v .NET

.NET je prostředí, framework Microsoftu pro vývoj aplikací.

  • Na produkčním prostředí Signi je workspace "Demo API" a má API klíč = “71c4123d242bdd38047bee838d17e3367dc3ea6748d0975217ce501e834a224c83cab8afd35c9b0e6ade806b7987fae80f97f5c8253cfbb9089cf21f” , při svých voláních zaměňte tento API klíč za API klíč svého workspace, který získáte po objednání služby "Integrace API" a Generování API klíče.

  • Pro Pro zasílání HTTP požavavků se využívá knihovna RestSharp, https://restsharp.dev/

  • Níže jsou volání různých enpointů Signi API.

Příklad kódu v VBA

Visual Basic for Application je vývojový jazyk používaný v desktopových verzích Microsoft Office . Není již podporován v cloudovém prostředí Office 365.

  • Na produkčním prostředí Signi je workspace "Demo API" a má API klíč = “71c4123d242bdd38047bee838d17e3367dc3ea6748d0975217ce501e834a224c83cab8afd35c9b0e6ade806b7987fae80f97f5c8253cfbb9089cf21f” , při svých voláních zaměňte tento API klíč za API klíč svého workspace, který získáte po objednání služby "Integrace API" a Generování API klíče.

  • Je třeba kód spouštět Micrisoft Excel for Desktop na MS Windows. Na cloudovém prostředí MS 356 nefugnují makrave VBA, v Microsoft Execl for Mac není přístupný objekt pro HTTP requesty.