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
(Chilkat2-Python) Yousign - Setup email notificationsDemonstrates how to setup email notifications based on events. An event is triggered when a user (or our API) make an action or when a status has changed. For more information, see https://dev.yousign.com/?version=latest#96b9f5ec-8e41-4d0f-82e5-6fa91adfa4fd
import sys import chilkat2 # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. http = chilkat2.Http() # Implements the following CURL command: # curl --location --request POST 'https://staging-api.yousign.com/procedures' \ # --header 'Authorization: Bearer YOUR_API_KEY' \ # --header 'Content-Type: application/json' \ # --data-raw '{ # "name": "My first procedure with emails", # "description": "Powerful! Here is the description of my first procedure with emails", # "members": [ # { # "firstname": "John", # "lastname": "Doe", # "email": "john.doe@yousign.fr", # "phone": "+33612345678", # "fileObjects": [ # { # "file": "/files/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # "page": 2, # "position": "230,499,464,589", # "mention": "Read and approved", # "mention2": "Signed by John Doe" # } # ] # } # ], # "config": { # "email": { # "member.started": [ # { # "subject": "Hey! You are invited to sign!", # "message": "Hello <tag data-tag-type=\"string\" data-tag-name=\"recipient.firstname\"></tag> <tag data-tag-type=\"string\" data-tag-name=\"recipient.lastname\"></tag>, <br><br> You have ben invited to sign a document, please click on the following button to read it: <tag data-tag-type=\"button\" data-tag-name=\"url\" data-tag-title=\"Access to documents\">Access to documents</tag>", # "to": ["@member"] # } # ], # "procedure.started": [ # { # "subject": "John, created a procedure your API have.", # "message": "The content of this email is totally awesome.", # "to": ["@creator", "@members", "billing@yousign.fr"] # } # ] # } # } # }' # 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": "My first procedure with emails", # "description": "Powerful! Here is the description of my first procedure with emails", # "members": [ # { # "firstname": "John", # "lastname": "Doe", # "email": "john.doe@yousign.fr", # "phone": "+33612345678", # "fileObjects": [ # { # "file": "/files/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # "page": 2, # "position": "230,499,464,589", # "mention": "Read and approved", # "mention2": "Signed by John Doe" # } # ] # } # ], # "config": { # "email": { # "member.started": [ # { # "subject": "Hey! You are invited to sign!", # "message": "Hello <tag data-tag-type=", # " data-tag-name=": <tag, # "button": [ # "@member" # ] # } # ], # "procedure.started": [ # { # "subject": "John, created a procedure your API have.", # "message": "The content of this email is totally awesome.", # "to": [ # "@creator", # "@members", # "billing@yousign.fr" # ] # } # ] # } # } # } json = chilkat2.JsonObject() json.UpdateString("name","My first procedure with emails") json.UpdateString("description","Powerful! Here is the description of my first procedure with emails") json.UpdateString("members[0].firstname","John") json.UpdateString("members[0].lastname","Doe") json.UpdateString("members[0].email","john.doe@yousign.fr") json.UpdateString("members[0].phone","+33612345678") # Use the actual file ID here... json.UpdateString("members[0].fileObjects[0].file","/files/23686fbe-3ae1-4de9-9e01-58bbf29b2b18") json.UpdateInt("members[0].fileObjects[0].page",2) json.UpdateString("members[0].fileObjects[0].position","230,499,464,589") json.UpdateString("members[0].fileObjects[0].mention","Read and approved") json.UpdateString("members[0].fileObjects[0].mention2","Signed by John Doe") json.UpdateString("config.email.\"member.started\"[0].subject","Hey! You are invited to sign!") json.UpdateString("config.email.\"member.started\"[0].message","Hello <tag data-tag-type=\"string\" data-tag-name=\"recipient.firstname\"></tag> <tag data-tag-type=\"string\" data-tag-name=\"recipient.lastname\"></tag>, <br><br> You have ben invited to sign a document, please click on the following button to read it: <tag data-tag-type=\"button\" data-tag-name=\"url\" data-tag-title=\"Access to documents\">Access to documents</tag>") json.UpdateString("config.email.\"member.started\"[0].to[0]","@member") json.UpdateString("config.email.\"procedure.started\"[0].subject","John, created a procedure your API have.") json.UpdateString("config.email.\"procedure.started\"[0].message","The content of this email is totally awesome.") json.UpdateString("config.email.\"procedure.started\"[0].to[0]","@creator") json.UpdateString("config.email.\"procedure.started\"[0].to[1]","@members") json.UpdateString("config.email.\"procedure.started\"[0].to[2]","billing@yousign.fr") # Adds the "Authorization: Bearer YOUR_API_KEY" header. http.AuthToken = "YOUR_API_KEY" http.SetRequestHeader("Content-Type","application/json") # resp is a CkHttpResponse resp = http.PostJson3("https://staging-api.yousign.com/procedures","application/json",json) if (http.LastMethodSuccess == False): print(http.LastErrorText) sys.exit() sbResponseBody = chilkat2.StringBuilder() resp.GetBodySb(sbResponseBody) jResp = chilkat2.JsonObject() jResp.LoadSb(sbResponseBody) jResp.EmitCompact = False print("Response Body:") print(jResp.Emit()) respStatusCode = resp.StatusCode print("Response Status Code = " + str(respStatusCode)) if (respStatusCode >= 400): print("Response Header:") print(resp.Header) print("Failed.") sys.exit() # Sample JSON response: # (Sample code for parsing the JSON response is shown below) # { # "id": "/procedures/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # "name": "My first procedure with emails", # "description": "Powerful! Here is the description of my first procedure with emails", # "createdAt": "2018-12-05T06:53:34+01:00", # "updatedAt": "2018-12-05T06:53:34+01:00", # "finishedAt": null, # "expiresAt": null, # "status": "active", # "creator": null, # "creatorFirstName": null, # "creatorLastName": null, # "workspace": "/workspaces/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # "template": false, # "ordered": false, # "parent": null, # "metadata": [ # ], # "config": { # "email": { # "procedure.started": [ # { # "subject": "John, created a procedure your API have.", # "message": "The content of this email is totally awesome.", # "to": [ # "@creator", # "@members", # "billing@yousign.fr" # ] # } # ], # "member.started": [ # { # "subject": "Hey! You are invited to sign!", # "message": "Hello <tag data-tag-type=\"string\" data-tag-name=\"recipient.firstname\"></tag> <tag data-tag-type=\"string\" data-tag-name=\"recipient.lastname\"></tag>, <br><br> You have ben invited to sign a document, please click on the following button to read it: <tag data-tag-type=\"button\" data-tag-name=\"url\" data-tag-title=\"Access to documents\">Access to documents</tag>", # "to": [ # "@member" # ] # } # ] # } # }, # "members": [ # { # "id": "/members/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # "user": null, # "type": "signer", # "firstname": "John", # "lastname": "Doe", # "email": "john.doe@yousign.fr", # "phone": "+33612345678", # "position": 1, # "createdAt": "2018-12-05T06:53:34+01:00", # "updatedAt": "2018-12-05T06:53:34+01:00", # "finishedAt": null, # "status": "pending", # "fileObjects": [ # { # "id": "/file_objects/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # "file": { # "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-05T06:52:54+01:00", # "updatedAt": "2018-12-05T06:53:34+01:00", # "sha256": "bb57ae2b2ca6ad0133a699350d1a6f6c8cdfde3cf872cf526585d306e4675cc2", # "metadata": [ # ], # "workspace": "/workspaces/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # "creator": null, # "protected": false, # "position": 0, # "parent": null # }, # "page": 2, # "position": "230,499,464,589", # "fieldName": null, # "mention": "Read and approved", # "mention2": "Signed by John Doe", # "createdAt": "2018-12-05T06:53:34+01:00", # "updatedAt": "2018-12-05T06:53:34+01:00", # "parent": null, # "reason": "Signed by Yousign" # } # ], # "comment": null, # "notificationsEmail": [ # ], # "operationLevel": "custom", # "operationCustomModes": [ # "sms" # ], # "operationModeSmsConfig": null, # "parent": null # } # ], # "subscribers": [ # ], # "files": [ # { # "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-05T06:52:54+01:00", # "updatedAt": "2018-12-05T06:53:34+01:00", # "sha256": "bb57ae2b2ca6ad0133a699350d1a6f6c8cdfde3cf872cf526585d306e4675cc2", # "metadata": [ # ], # "workspace": "/workspaces/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", # "creator": null, # "protected": false, # "position": 0, # "parent": null # } # ], # "relatedFilesEnable": false, # "archive": false, # "archiveMetadata": [ # ], # "fields": [ # ], # "permissions": [ # ] # } # Sample code for parsing the JSON response... # Use the following online tool to generate parsing code from sample JSON: # Generate Parsing Code from JSON id = jResp.StringOf("id") name = jResp.StringOf("name") description = jResp.StringOf("description") createdAt = jResp.StringOf("createdAt") updatedAt = jResp.StringOf("updatedAt") finishedAt = jResp.StringOf("finishedAt") expiresAt = jResp.StringOf("expiresAt") status = jResp.StringOf("status") creator = jResp.StringOf("creator") creatorFirstName = jResp.StringOf("creatorFirstName") creatorLastName = jResp.StringOf("creatorLastName") workspace = jResp.StringOf("workspace") template = jResp.BoolOf("template") ordered = jResp.BoolOf("ordered") parent = jResp.StringOf("parent") relatedFilesEnable = jResp.BoolOf("relatedFilesEnable") archive = jResp.BoolOf("archive") i = 0 count_i = jResp.SizeOfArray("metadata") while i < count_i : jResp.I = i i = i + 1 i = 0 count_i = jResp.SizeOfArray("config.email.\"procedure.started\"") while i < count_i : jResp.I = i subject = jResp.StringOf("config.email.\"procedure.started\"[i].subject") message = jResp.StringOf("config.email.\"procedure.started\"[i].message") j = 0 count_j = jResp.SizeOfArray("config.email.\"procedure.started\"[i].to") while j < count_j : jResp.J = j strVal = jResp.StringOf("config.email.\"procedure.started\"[i].to[j]") j = j + 1 i = i + 1 i = 0 count_i = jResp.SizeOfArray("config.email.\"member.started\"") while i < count_i : jResp.I = i subject = jResp.StringOf("config.email.\"member.started\"[i].subject") message = jResp.StringOf("config.email.\"member.started\"[i].message") j = 0 count_j = jResp.SizeOfArray("config.email.\"member.started\"[i].to") while j < count_j : jResp.J = j strVal = jResp.StringOf("config.email.\"member.started\"[i].to[j]") j = j + 1 i = i + 1 i = 0 count_i = jResp.SizeOfArray("members") while i < count_i : jResp.I = i id = jResp.StringOf("members[i].id") user = jResp.StringOf("members[i].user") v_type = jResp.StringOf("members[i].type") firstname = jResp.StringOf("members[i].firstname") lastname = jResp.StringOf("members[i].lastname") email = jResp.StringOf("members[i].email") phone = jResp.StringOf("members[i].phone") position = jResp.IntOf("members[i].position") createdAt = jResp.StringOf("members[i].createdAt") updatedAt = jResp.StringOf("members[i].updatedAt") finishedAt = jResp.StringOf("members[i].finishedAt") status = jResp.StringOf("members[i].status") comment = jResp.StringOf("members[i].comment") operationLevel = jResp.StringOf("members[i].operationLevel") operationModeSmsConfig = jResp.StringOf("members[i].operationModeSmsConfig") parent = jResp.StringOf("members[i].parent") j = 0 count_j = jResp.SizeOfArray("members[i].fileObjects") while j < count_j : jResp.J = j id = jResp.StringOf("members[i].fileObjects[j].id") fileId = jResp.StringOf("members[i].fileObjects[j].file.id") fileName = jResp.StringOf("members[i].fileObjects[j].file.name") fileType = jResp.StringOf("members[i].fileObjects[j].file.type") fileContentType = jResp.StringOf("members[i].fileObjects[j].file.contentType") fileDescription = jResp.StringOf("members[i].fileObjects[j].file.description") fileCreatedAt = jResp.StringOf("members[i].fileObjects[j].file.createdAt") fileUpdatedAt = jResp.StringOf("members[i].fileObjects[j].file.updatedAt") fileSha256 = jResp.StringOf("members[i].fileObjects[j].file.sha256") fileWorkspace = jResp.StringOf("members[i].fileObjects[j].file.workspace") fileCreator = jResp.StringOf("members[i].fileObjects[j].file.creator") fileProtected = jResp.BoolOf("members[i].fileObjects[j].file.protected") filePosition = jResp.IntOf("members[i].fileObjects[j].file.position") fileParent = jResp.StringOf("members[i].fileObjects[j].file.parent") page = jResp.IntOf("members[i].fileObjects[j].page") position_str = jResp.StringOf("members[i].fileObjects[j].position") fieldName = jResp.StringOf("members[i].fileObjects[j].fieldName") mention = jResp.StringOf("members[i].fileObjects[j].mention") mention2 = jResp.StringOf("members[i].fileObjects[j].mention2") createdAt = jResp.StringOf("members[i].fileObjects[j].createdAt") updatedAt = jResp.StringOf("members[i].fileObjects[j].updatedAt") parent = jResp.StringOf("members[i].fileObjects[j].parent") reason = jResp.StringOf("members[i].fileObjects[j].reason") k = 0 count_k = jResp.SizeOfArray("members[i].fileObjects[j].file.metadata") while k < count_k : jResp.K = k k = k + 1 j = j + 1 j = 0 count_j = jResp.SizeOfArray("members[i].notificationsEmail") while j < count_j : jResp.J = j j = j + 1 j = 0 count_j = jResp.SizeOfArray("members[i].operationCustomModes") while j < count_j : jResp.J = j strVal = jResp.StringOf("members[i].operationCustomModes[j]") j = j + 1 i = i + 1 i = 0 count_i = jResp.SizeOfArray("subscribers") while i < count_i : jResp.I = i i = i + 1 i = 0 count_i = jResp.SizeOfArray("files") while i < count_i : jResp.I = i id = jResp.StringOf("files[i].id") name = jResp.StringOf("files[i].name") v_type = jResp.StringOf("files[i].type") contentType = jResp.StringOf("files[i].contentType") description = jResp.StringOf("files[i].description") createdAt = jResp.StringOf("files[i].createdAt") updatedAt = jResp.StringOf("files[i].updatedAt") sha256 = jResp.StringOf("files[i].sha256") workspace = jResp.StringOf("files[i].workspace") creator = jResp.StringOf("files[i].creator") v_protected = jResp.BoolOf("files[i].protected") position = jResp.IntOf("files[i].position") parent = jResp.StringOf("files[i].parent") j = 0 count_j = jResp.SizeOfArray("files[i].metadata") while j < count_j : jResp.J = j j = j + 1 i = i + 1 i = 0 count_i = jResp.SizeOfArray("archiveMetadata") while i < count_i : jResp.I = i i = i + 1 i = 0 count_i = jResp.SizeOfArray("fields") while i < count_i : jResp.I = i i = i + 1 i = 0 count_i = jResp.SizeOfArray("permissions") while i < count_i : jResp.I = i i = i + 1 |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.