Sample code for 30+ languages & platforms
Objective-C

Yousign: Making your first API call

See more Yousign Examples

Demonstrates making the simplest of calls to test your API key. This example tests using the sandbox URLs.

Chilkat Objective-C Downloads

Objective-C
#import <CkoHttp.h>
#import <CkoStringBuilder.h>
#import <CkoJsonObject.h>
#import <NSString.h>

BOOL success = NO;

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

CkoHttp *http = [[CkoHttp alloc] init];

// Implements the following CURL command:

// curl --location --request GET 'https://staging-api.yousign.com/users' \
// --header 'Authorization: Bearer YOUR_API_KEY' \
// --header 'Content-Type: application/json'

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

// Adds the "Authorization: Bearer YOUR_API_KEY" header.
http.AuthToken = @"YOUR_API_KEY";
[http SetRequestHeader: @"Content-Type" value: @"application/json"];

CkoStringBuilder *sbResponseBody = [[CkoStringBuilder alloc] init];
success = [http QuickGetSb: @"https://staging-api.yousign.com/users" sbContent: sbResponseBody];
if (success == NO) {
    NSLog(@"%@",http.LastErrorText);
    return;
}

CkoJsonObject *jResp = [[CkoJsonObject alloc] init];
[jResp LoadSb: sbResponseBody];
jResp.EmitCompact = NO;

NSLog(@"%@",@"Response Body:");
NSLog(@"%@",[jResp Emit]);

int respStatusCode = [http.LastStatus intValue];
NSLog(@"%@%d",@"Response Status Code = ",respStatusCode);
if (respStatusCode >= 400) {
    NSLog(@"%@",@"Response Header:");
    NSLog(@"%@",http.LastHeader);
    NSLog(@"%@",@"Failed.");
    return;
}

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

// {
//   "id": "/users/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
//   "firstname": "John",
//   "lastname": "Doe",
//   "email": "john.doe@yousign.fr",
//   "title": "Developer",
//   "phone": "+33612345678",
//   "status": "activated",
//   "organization": "/organizations/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
//   "workspaces": [
//     {
//       "id": "/workspaces/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
//       "name": "Acme"
//     }
//   ],
//   "permission": "ROLE_ADMIN",
//   "group": {
//     "id": "/user_groups/XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
//     "name": "Administrateur",
//     "permissions": [
//       "procedure_write",
//       "procedure_template_write",
//       "procedure_create_from_template",
//       "contact",
//       "sign",
//       "organization",
//       "user",
//       "api_key",
//       "procedure_custom_field",
//       "signature_ui",
//       "certificate",
//       "archive"
//     ]
//   },
//   "createdAt": "2018-12-01T09:42:25+01:00",
//   "updatedAt": "2018-12-01T09:42:25+01:00",
//   "deleted": false,
//   "deletedAt": null,
//   "config": [
//   ],
//   "inweboUserRequest": null,
//   "samlNameId": null,
//   "defaultSignImage": null,
//   "notifications": {
//     "procedure": true
//   },
//   "fastSign": false,
//   "fullName": "John Doe"
// }

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

NSString *name = 0;
NSString *strVal = 0;

NSString *id = [jResp StringOf: @"id"];
NSString *firstname = [jResp StringOf: @"firstname"];
NSString *lastname = [jResp StringOf: @"lastname"];
NSString *email = [jResp StringOf: @"email"];
NSString *title = [jResp StringOf: @"title"];
NSString *phone = [jResp StringOf: @"phone"];
NSString *status = [jResp StringOf: @"status"];
NSString *organization = [jResp StringOf: @"organization"];
NSString *permission = [jResp StringOf: @"permission"];
NSString *groupId = [jResp StringOf: @"group.id"];
NSString *groupName = [jResp StringOf: @"group.name"];
NSString *createdAt = [jResp StringOf: @"createdAt"];
NSString *updatedAt = [jResp StringOf: @"updatedAt"];
BOOL deleted = [jResp BoolOf: @"deleted"];
NSString *deletedAt = [jResp StringOf: @"deletedAt"];
NSString *inweboUserRequest = [jResp StringOf: @"inweboUserRequest"];
NSString *samlNameId = [jResp StringOf: @"samlNameId"];
NSString *defaultSignImage = [jResp StringOf: @"defaultSignImage"];
BOOL notificationsProcedure = [jResp BoolOf: @"notifications.procedure"];
BOOL fastSign = [jResp BoolOf: @"fastSign"];
NSString *fullName = [jResp StringOf: @"fullName"];
int i = 0;
int count_i = [[jResp SizeOfArray: @"workspaces"] intValue];
while (i < count_i) {
    jResp.I = [NSNumber numberWithInt: i];
    id = [jResp StringOf: @"workspaces[i].id"];
    name = [jResp StringOf: @"workspaces[i].name"];
    i = i + 1;
}

i = 0;
count_i = [[jResp SizeOfArray: @"group.permissions"] intValue];
while (i < count_i) {
    jResp.I = [NSNumber numberWithInt: i];
    strVal = [jResp StringOf: @"group.permissions[i]"];
    i = i + 1;
}

i = 0;
count_i = [[jResp SizeOfArray: @"config"] intValue];
while (i < count_i) {
    jResp.I = [NSNumber numberWithInt: i];
    i = i + 1;
}