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
(Visual FoxPro) RSAP Union API - Get OAuth2 Access TokenDemonstrates how to get an OAuth2 access token for the RSAP Union API. Note: This uses the client credentials flow, which does NOT require an interactive engagement using a browser. For more information, see https://app.swaggerhub.com/apis-docs/pderas/RSAP/2.0.1#/Authentication/getOauthToken
LOCAL loHttp LOCAL lnSuccess LOCAL loJson LOCAL loCert LOCAL loPrivKey LOCAL loResp LOCAL loSbResponseBody LOCAL loJResp LOCAL lnRespStatusCode * This example assumes the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http') loHttp = CreateObject('Chilkat.Http') * The following JSON is sent in the request body. * { * "grant_type": "client_credentials", * "client_id": 1234, * "client_secret": "23456abcde" * } * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.UpdateString("grant_type","client_credentials") loJson.UpdateInt("client_id",1234) loJson.UpdateString("client_secret","23456abcde") loHttp.SetRequestHeader("Content-type","application/json") * Add the client certificate TLS authentication. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Cert') loCert = CreateObject('Chilkat.Cert') lnSuccess = loCert.LoadFromFile("qa_data/certs_and_keys/union_client_certificate.crt") IF (lnSuccess = 0) THEN ? loCert.LastErrorText RELEASE loHttp RELEASE loJson RELEASE loCert CANCEL ENDIF * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.PrivateKey') loPrivKey = CreateObject('Chilkat.PrivateKey') lnSuccess = loPrivKey.LoadAnyFormatFile("qa_data/certs_and_keys/union_client_certificate.nopass.key","") IF (lnSuccess = 0) THEN ? loPrivKey.LastErrorText RELEASE loHttp RELEASE loJson RELEASE loCert RELEASE loPrivKey CANCEL ENDIF * Associate the private key with the cert. * This will fail if the private key is not actually the correct one that corresponds to the public key stored within the cert. lnSuccess = loCert.SetPrivateKey(loPrivKey) IF (lnSuccess = 0) THEN ? loCert.LastErrorText RELEASE loHttp RELEASE loJson RELEASE loCert RELEASE loPrivKey CANCEL ENDIF * Tell HTTP to use the cert for client TLS certificate authentication. lnSuccess = loHttp.SetSslClientCert(loCert) IF (lnSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loJson RELEASE loCert RELEASE loPrivKey CANCEL ENDIF loResp = loHttp.PostJson3("https://api-test.rsap.ca/oauth/token","application/json",loJson) IF (loHttp.LastMethodSuccess = 0) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loJson RELEASE loCert RELEASE loPrivKey CANCEL ENDIF * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbResponseBody = CreateObject('Chilkat.StringBuilder') loResp.GetBodySb(loSbResponseBody) * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJResp = CreateObject('Chilkat.JsonObject') loJResp.LoadSb(loSbResponseBody) loJResp.EmitCompact = 0 ? "Response Body:" ? loJResp.Emit() lnRespStatusCode = loResp.StatusCode ? "Response Status Code = " + STR(lnRespStatusCode) IF (lnRespStatusCode >= 400) THEN ? "Response Header:" ? loResp.Header ? "Failed." RELEASE loResp RELEASE loHttp RELEASE loJson RELEASE loCert RELEASE loPrivKey RELEASE loSbResponseBody RELEASE loJResp CANCEL ENDIF RELEASE loResp * Sample JSON response: * (Sample code for parsing the JSON response is shown below) * { * "token_type": "Bearer", * "expires_in": 3600, * "access_token": "eyJ0eXAi...LnE" * } * This token expires in 1 hour. Your application could re-use the same token for up to an hour, * or it can simply get a new access token before each request (if you're not doing too many requests). lnSuccess = loJResp.WriteFile("qa_data/tokens/rsapToken.json") RELEASE loHttp RELEASE loJson RELEASE loCert RELEASE loPrivKey RELEASE loSbResponseBody RELEASE loJResp |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.