![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) Test Salesforce OAuth2 Access TokenSee more Salesforce ExamplesDemonstrates how to make a simple Salesforce REST API call to test a previously obtained access token.
#include <C_CkHttpW.h> #include <C_CkJsonObjectW.h> #include <C_CkStringBuilderW.h> void ChilkatSample(void) { HCkHttpW http; HCkJsonObjectW json; BOOL success; HCkStringBuilderW sbUrl; HCkStringBuilderW sbResponseBody; HCkJsonObjectW jsonResponse; // This example does the following: // curl -X GET https://yourInstance.salesforce.com/services/oauth2/userinfo \ // -H "Authorization: Bearer YOUR_ACCESS_TOKEN" http = CkHttpW_Create(); // Use the following online tool to generate HTTP code from a CURL command // Convert a cURL Command to HTTP Source Code // This example assumes the OAuth2 access token was previously fetched // and saved to a file. See Get SalesForce OAuth2 Access Token via Authorization Flow json = CkJsonObjectW_Create(); success = CkJsonObjectW_LoadFile(json,L"qa_data/tokens/_salesforce.json"); if (success == FALSE) { wprintf(L"Failed to load OAuth2 access token.\n"); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); return; } // Here's an example of the JSON: // { // "access_token": "00D41000....uLZBpT6", // "refresh_token": "5Aep....25xdGgkrV", // "signature": "cjTbSc5DvcKpaMoRTzuQTJLb1tcMw8LEO01flq4aMD4=", // "scope": "refresh_token id", // "instance_url": "https://d41000000f8a0eak-dev-ed.my.salesforce.com", // "id": "https://login.salesforce.com/id/00D41000000F8A0EAK/005410000....xAAE", // "token_type": "Bearer", // "issued_at": "1738348388166" // } // Adds the "Authorization: Bearer YOUR_ACCESS_TOKEN" header. CkHttpW_putAuthToken(http,CkJsonObjectW_stringOf(json,L"access_token")); // We want to build the following URL: https://<instance_id>.salesforce.com/services/oauth2/userinfo sbUrl = CkStringBuilderW_Create(); CkStringBuilderW_Append(sbUrl,CkJsonObjectW_stringOf(json,L"instance_url")); CkStringBuilderW_Append(sbUrl,L"/services/oauth2/userinfo"); sbResponseBody = CkStringBuilderW_Create(); success = CkHttpW_QuickGetSb(http,CkStringBuilderW_getAsString(sbUrl),sbResponseBody); if (success == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); CkStringBuilderW_Dispose(sbUrl); CkStringBuilderW_Dispose(sbResponseBody); return; } wprintf(L"Response status code = %d\n",CkHttpW_getLastStatus(http)); jsonResponse = CkJsonObjectW_Create(); CkJsonObjectW_LoadSb(jsonResponse,sbResponseBody); CkJsonObjectW_putEmitCompact(jsonResponse,FALSE); wprintf(L"%s\n",CkJsonObjectW_emit(jsonResponse)); // The expected JSON response is something like this: // { // "sub": "005xxxxxxxxxxxx", // "name": "John Doe", // "preferred_username": "johndoe@example.com", // "email": "johndoe@example.com", // "profile": "https://na85.salesforce.com/005xxxxxxxxxxxx" // ... // ... // } CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); CkStringBuilderW_Dispose(sbUrl); CkStringBuilderW_Dispose(sbResponseBody); CkJsonObjectW_Dispose(jsonResponse); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.