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
(Objective-C) SugarCRM AuthenticateDemonstrates how to authenticate to the SugarCRM REST v10 API. This is how an OAuth2 access token is obtained.
#import <CkoRest.h> #import <CkoJsonObject.h> #import <CkoStringBuilder.h> #import <NSString.h> CkoRest *rest = [[CkoRest alloc] init]; BOOL success; success = [rest Connect: @"your.site.domain" port: [NSNumber numberWithInt: 443] tls: YES autoReconnect: YES]; if (success != YES) { NSLog(@"%@",rest.LastErrorText); return; } [rest AddHeader: @"Cache-Control" value: @"no-cache"]; // The following code creates the JSON request body. // The JSON created by this code is shown below. CkoJsonObject *jsonReq = [[CkoJsonObject alloc] init]; [jsonReq UpdateString: @"grant_type" value: @"password"]; [jsonReq UpdateString: @"client_id" value: @"sugar"]; [jsonReq UpdateString: @"client_secret" value: @"CLIENT_SECRET"]; [jsonReq UpdateString: @"username" value: @"admin"]; [jsonReq UpdateString: @"password" value: @"password"]; [jsonReq UpdateString: @"platform" value: @"custom_api"]; // The JSON request body created by the above code: // { // "grant_type": "password", // "client_id": "sugar", // "client_secret": "CLIENT_SECRET", // "username": "admin", // "password": "password", // "platform": "custom_api" // } CkoStringBuilder *sbReq = [[CkoStringBuilder alloc] init]; [jsonReq EmitSb: sbReq]; [rest AddHeader: @"Content-Type" value: @"application/json"]; CkoStringBuilder *sbJson = [[CkoStringBuilder alloc] init]; success = [rest FullRequestSb: @"POST" uriPath: @"/rest/v10/oauth2/token" requestBody: sbReq responseBody: sbJson]; if (success != YES) { NSLog(@"%@",rest.LastErrorText); return; } if ([rest.ResponseStatusCode intValue] != 200) { NSLog(@"%@%d",@"Received error response code: ",[rest.ResponseStatusCode intValue]); NSLog(@"%@",@"Response body:"); NSLog(@"%@",[sbJson GetAsString]); return; } CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json LoadSb: sbJson]; // The following code parses the JSON response. // A sample JSON response is shown below the sample code. NSString *access_token = 0; int expires_in; NSString *token_type = 0; BOOL scope; NSString *refresh_token = 0; int refresh_expires_in; NSString *download_token = 0; access_token = [json StringOf: @"access_token"]; expires_in = [[json IntOf: @"expires_in"] intValue]; token_type = [json StringOf: @"token_type"]; scope = [json IsNullOf: @"scope"]; refresh_token = [json StringOf: @"refresh_token"]; refresh_expires_in = [[json IntOf: @"refresh_expires_in"] intValue]; download_token = [json StringOf: @"download_token"]; // A sample JSON response body that is parsed by the above code: // { // "access_token": "c6d495c9-bb25-81d2-5f81-533ef6479f9b", // "expires_in": 3600, // "token_type": "bearer", // "scope": null, // "refresh_token": "cbc40e67-12bc-4b56-a1d9-533ef62f2601", // "refresh_expires_in": 1209600, // "download_token": "cc5d1a9f-6627-3349-96e5-533ef6b1a493" // } NSLog(@"%@",@"Example Completed."); |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.