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
(C++) SugarCRM AuthenticateDemonstrates how to authenticate to the SugarCRM REST v10 API. This is how an OAuth2 access token is obtained.
#include <CkRest.h> #include <CkJsonObject.h> #include <CkStringBuilder.h> void ChilkatSample(void) { CkRest rest; bool success; success = rest.Connect("your.site.domain",443,true,true); if (success != true) { std::cout << rest.lastErrorText() << "\r\n"; return; } rest.AddHeader("Cache-Control","no-cache"); // The following code creates the JSON request body. // The JSON created by this code is shown below. CkJsonObject jsonReq; jsonReq.UpdateString("grant_type","password"); jsonReq.UpdateString("client_id","sugar"); jsonReq.UpdateString("client_secret","CLIENT_SECRET"); jsonReq.UpdateString("username","admin"); jsonReq.UpdateString("password","password"); jsonReq.UpdateString("platform","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" // } CkStringBuilder sbReq; jsonReq.EmitSb(sbReq); rest.AddHeader("Content-Type","application/json"); CkStringBuilder sbJson; success = rest.FullRequestSb("POST","/rest/v10/oauth2/token",sbReq,sbJson); if (success != true) { std::cout << rest.lastErrorText() << "\r\n"; return; } if (rest.get_ResponseStatusCode() != 200) { std::cout << "Received error response code: " << rest.get_ResponseStatusCode() << "\r\n"; std::cout << "Response body:" << "\r\n"; std::cout << sbJson.getAsString() << "\r\n"; return; } CkJsonObject json; json.LoadSb(sbJson); // The following code parses the JSON response. // A sample JSON response is shown below the sample code. const char *access_token = 0; int expires_in; const char *token_type = 0; bool scope; const char *refresh_token = 0; int refresh_expires_in; const char *download_token = 0; access_token = json.stringOf("access_token"); expires_in = json.IntOf("expires_in"); token_type = json.stringOf("token_type"); scope = json.IsNullOf("scope"); refresh_token = json.stringOf("refresh_token"); refresh_expires_in = json.IntOf("refresh_expires_in"); 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" // } std::cout << "Example Completed." << "\r\n"; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.