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
(DataFlex) Isabel Connect Create Access Token given Valid Refresh TokenSee more Ibanity ExamplesCreate (refresh) an access token given a valid refresh token. For more information, see https://documentation.ibanity.com/isabel-connect/api#create-access-token
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Variant vCert Handle hoCert Boolean iSuccess Variant vReq Handle hoReq Handle hoJsonToken Handle hoCrypt String sIdempotencyKey Variant vResp Handle hoResp Variant vSbResponseBody Handle hoSbResponseBody Handle hoJResp Integer iRespStatusCode String sToken_type String sScope Integer iExpires_in String sAccess_token String sTemp1 Boolean bTemp1 // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End // Implements the following CURL command: // curl -X POST https://api.ibanity.com/isabel-connect/oauth2/token \ // --cert certificate.pem:qwertyuiop1 \ // --key private_key.pem \ // -H "Content-Type: application/x-www-form-urlencoded" \ // -H "Accept: application/vnd.api+json" \ // -H "Ibanity-Idempotency-Key: 94c5586e-e15e-4bae-a1fe-fdbefe1f11d3" \ // -d grant_type=refresh_token \ // -d refresh_token=valid_refresh_token \ // -d client_id=valid_client_id \ // -d client_secret=valid_client_secret // Ibanity provides the certificate + private key in PFX format. This example will use the .pfx instead of the pair of PEM files. // (It is also possible to implement using Chilkat with the PEM files, but PFX is easier.) Get Create (RefClass(cComChilkatCert)) To hoCert If (Not(IsComObjectCreated(hoCert))) Begin Send CreateComObject of hoCert End Get ComLoadPfxFile Of hoCert "qa_data/pfx/my_ibanity_certificate.pfx" "my_pfx_password" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoCert To sTemp1 Showln sTemp1 Procedure_Return End Get pvComObject of hoCert to vCert Get ComSetSslClientCert Of hoHttp vCert To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatHttpRequest)) To hoReq If (Not(IsComObjectCreated(hoReq))) Begin Send CreateComObject of hoReq End Set ComHttpVerb Of hoReq To "POST" Set ComPath Of hoReq To "/isabel-connect/oauth2/token" Set ComContentType Of hoReq To "application/x-www-form-urlencoded" Send ComAddParam To hoReq "grant_type" "refresh_token" // Load the previously obtained refresh token. Get Create (RefClass(cComChilkatJsonObject)) To hoJsonToken If (Not(IsComObjectCreated(hoJsonToken))) Begin Send CreateComObject of hoJsonToken End Get ComLoadFile Of hoJsonToken "qa_data/tokens/isabel_refresh_token.json" To iSuccess If (iSuccess = False) Begin Showln "No existing access token." Procedure_Return End Get ComStringOf Of hoJsonToken "refresh_token" To sTemp1 Send ComAddParam To hoReq "refresh_token" sTemp1 // Note: For sandbox testing, we literally want to use the strings // "valid_client_id", and "valid_client_secret". // For the live app, you would replace these with actual values. Send ComAddParam To hoReq "client_id" "valid_client_id" Send ComAddParam To hoReq "client_secret" "valid_client_secret" Send ComAddHeader To hoReq "Accept" "application/vnd.api+json" Get Create (RefClass(cComChilkatCrypt2)) To hoCrypt If (Not(IsComObjectCreated(hoCrypt))) Begin Send CreateComObject of hoCrypt End Get ComGenerateUuid Of hoCrypt To sIdempotencyKey Showln "Ibanity-Idempotency-Key: " sIdempotencyKey Send ComAddHeader To hoReq "Ibanity-Idempotency-Key" sIdempotencyKey Get pvComObject of hoReq to vReq Get ComPostUrlEncoded Of hoHttp "https://api.ibanity.com/isabel-connect/oauth2/token" vReq To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody If (Not(IsComObjectCreated(hoSbResponseBody))) Begin Send CreateComObject of hoSbResponseBody End Get pvComObject of hoSbResponseBody to vSbResponseBody Get ComGetBodySb Of hoResp vSbResponseBody To iSuccess Get Create (RefClass(cComChilkatJsonObject)) To hoJResp If (Not(IsComObjectCreated(hoJResp))) Begin Send CreateComObject of hoJResp End Get pvComObject of hoSbResponseBody to vSbResponseBody Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess Set ComEmitCompact Of hoJResp To False Showln "Response Body:" Get ComEmit Of hoJResp To sTemp1 Showln sTemp1 Get ComStatusCode Of hoResp To iRespStatusCode Showln "Response Status Code = " iRespStatusCode If (iRespStatusCode >= 400) Begin Showln "Response Header:" Get ComHeader Of hoResp To sTemp1 Showln sTemp1 Showln "Failed." Send Destroy of hoResp Procedure_Return End Send Destroy of hoResp // Sample JSON response: // (Sample code for parsing the JSON response is shown below) // Notice that we don't get a new refresh token. The original refresh token is used each time we // want to refresh. However, we get a new access token. This access token is to be used in Isabel API calls // until we need to refresh again. // { // "token_type": "Bearer", // "scope": "cloudconnect", // "expires_in": 1799, // "access_token": "access_token_1603365408" // } // Sample code for parsing the JSON response... // Use the following online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON Get ComStringOf Of hoJResp "token_type" To sToken_type Get ComStringOf Of hoJResp "scope" To sScope Get ComIntOf Of hoJResp "expires_in" To iExpires_in Get ComStringOf Of hoJResp "access_token" To sAccess_token // Save this to a file so we can load in other examples to include the access token in the HTTP request. Get ComWriteFile Of hoJResp "qa_data/tokens/isabel_access_token.json" To iSuccess End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.