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
(Perl) 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
use chilkat(); # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $http = chilkat::CkHttp->new(); # 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::CkJsonObject->new(); $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->put_AuthToken("YOUR_API_KEY"); $http->SetRequestHeader("Content-Type","application/json"); # resp is a HttpResponse $resp = $http->PostJson3("https://staging-api.yousign.com/procedures","application/json",$json); if ($http->get_LastMethodSuccess() == 0) { print $http->lastErrorText() . "\r\n"; exit; } $sbResponseBody = chilkat::CkStringBuilder->new(); $resp->GetBodySb($sbResponseBody); $jResp = chilkat::CkJsonObject->new(); $jResp->LoadSb($sbResponseBody); $jResp->put_EmitCompact(0); print "Response Body:" . "\r\n"; print $jResp->emit() . "\r\n"; $respStatusCode = $resp->get_StatusCode(); print "Response Status Code = " . $respStatusCode . "\r\n"; if ($respStatusCode >= 400) { print "Response Header:" . "\r\n"; print $resp->header() . "\r\n"; print "Failed." . "\r\n"; 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->put_I($i); $i = $i + 1; } $i = 0; $count_i = $jResp->SizeOfArray("config.email.\"procedure.started\""); while ($i < $count_i) { $jResp->put_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->put_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->put_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->put_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->put_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->put_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->put_K($k); $k = $k + 1; } $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("members[i].notificationsEmail"); while ($j < $count_j) { $jResp->put_J($j); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("members[i].operationCustomModes"); while ($j < $count_j) { $jResp->put_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->put_I($i); $i = $i + 1; } $i = 0; $count_i = $jResp->SizeOfArray("files"); while ($i < $count_i) { $jResp->put_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->put_J($j); $j = $j + 1; } $i = $i + 1; } $i = 0; $count_i = $jResp->SizeOfArray("archiveMetadata"); while ($i < $count_i) { $jResp->put_I($i); $i = $i + 1; } $i = 0; $count_i = $jResp->SizeOfArray("fields"); while ($i < $count_i) { $jResp->put_I($i); $i = $i + 1; } $i = 0; $count_i = $jResp->SizeOfArray("permissions"); while ($i < $count_i) { $jResp->put_I($i); $i = $i + 1; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.