Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) 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) { CkString strOut; CkRest rest; bool success; success = rest.Connect("your.site.domain",443,true,true); if (success != true) { strOut.append(rest.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); 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) { strOut.append(rest.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } if (rest.get_ResponseStatusCode() != 200) { strOut.append("Received error response code: "); strOut.appendInt(rest.get_ResponseStatusCode()); strOut.append("\r\n"); strOut.append("Response body:"); strOut.append("\r\n"); strOut.append(sbJson.getAsString()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); 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" // } strOut.append("Example Completed."); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.