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