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;
}