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
(Go) 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
// This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := chilkat.NewHttp() var success bool // 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 := chilkat.NewJsonObject() 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.SetAuthToken("YOUR_API_KEY") http.SetRequestHeader("Content-Type","application/json") resp := http.PostJson3("https://staging-api.yousign.com/procedures","application/json",json) if http.LastMethodSuccess() == false { fmt.Println(http.LastErrorText()) http.DisposeHttp() json.DisposeJsonObject() return } sbResponseBody := chilkat.NewStringBuilder() resp.GetBodySb(sbResponseBody) jResp := chilkat.NewJsonObject() jResp.LoadSb(sbResponseBody) jResp.SetEmitCompact(false) fmt.Println("Response Body:") fmt.Println(*jResp.Emit()) respStatusCode := resp.StatusCode() fmt.Println("Response Status Code = ", respStatusCode) if respStatusCode >= 400 { fmt.Println("Response Header:") fmt.Println(resp.Header()) fmt.Println("Failed.") resp.DisposeHttpResponse() http.DisposeHttp() json.DisposeJsonObject() sbResponseBody.DisposeStringBuilder() jResp.DisposeJsonObject() return } resp.DisposeHttpResponse() // 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 var subject *string = new(string) var message *string = new(string) var j int var count_j int var strVal *string = new(string) var user *string = new(string) var v_type *string = new(string) first last var email *string = new(string) var phone *string = new(string) var position int var comment *string = new(string) var operationLevel *string = new(string) var operationModeSmsConfig *string = new(string) var fileId *string = new(string) var fileName *string = new(string) var fileType *string = new(string) var fileContentType *string = new(string) var fileDescription *string = new(string) var fileCreatedAt *string = new(string) var fileUpdatedAt *string = new(string) var fileSha256 *string = new(string) var fileWorkspace *string = new(string) var fileCreator *string = new(string) var fileProtected bool var filePosition int var fileParent *string = new(string) var page int var position_str *string = new(string) var fieldName *string = new(string) var mention *string = new(string) var mention2 *string = new(string) var reason *string = new(string) var k int var count_k int var contentType *string = new(string) var sha256 *string = new(string) var v_protected bool 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") for i < count_i { jResp.SetI(i) i = i + 1 } i = 0 count_i = jResp.SizeOfArray("config.email.\"procedure.started\"") for i < count_i { jResp.SetI(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") for j < count_j { jResp.SetJ(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\"") for i < count_i { jResp.SetI(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") for j < count_j { jResp.SetJ(j) strVal = jResp.StringOf("config.email.\"member.started\"[i].to[j]") j = j + 1 } i = i + 1 } i = 0 count_i = jResp.SizeOfArray("members") for i < count_i { jResp.SetI(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") for j < count_j { jResp.SetJ(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") for k < count_k { jResp.SetK(k) k = k + 1 } j = j + 1 } j = 0 count_j = jResp.SizeOfArray("members[i].notificationsEmail") for j < count_j { jResp.SetJ(j) j = j + 1 } j = 0 count_j = jResp.SizeOfArray("members[i].operationCustomModes") for j < count_j { jResp.SetJ(j) strVal = jResp.StringOf("members[i].operationCustomModes[j]") j = j + 1 } i = i + 1 } i = 0 count_i = jResp.SizeOfArray("subscribers") for i < count_i { jResp.SetI(i) i = i + 1 } i = 0 count_i = jResp.SizeOfArray("files") for i < count_i { jResp.SetI(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") for j < count_j { jResp.SetJ(j) j = j + 1 } i = i + 1 } i = 0 count_i = jResp.SizeOfArray("archiveMetadata") for i < count_i { jResp.SetI(i) i = i + 1 } i = 0 count_i = jResp.SizeOfArray("fields") for i < count_i { jResp.SetI(i) i = i + 1 } i = 0 count_i = jResp.SizeOfArray("permissions") for i < count_i { jResp.SetI(i) i = i + 1 } http.DisposeHttp() json.DisposeJsonObject() sbResponseBody.DisposeStringBuilder() jResp.DisposeJsonObject() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.