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
(SQL Server) Rabobank Refresh OAuth2 Access TokenDemonstrates how to refresh an expired Rabobank OAuth2 access token. (No interactive user interaction is required to refresh an access token.) For more information, see https://developer.rabobank.nl/implementoauth2
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example requires the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. -- We previously obtained an access token and saved the JSON to a file using this example: -- Get Rabobank OAuth2 Access Token DECLARE @json int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @json, 'LoadFile', @success OUT, 'qa_data/tokens/rabobank.json' IF @success <> 1 BEGIN EXEC @hr = sp_OADestroy @json RETURN END -- { -- "token_type": "Bearer", -- "access_token": "AAIkYTU0ZWM ... sxE0KL0HHWw", -- "expires_in": 3600, -- "consented_on": 1584641121, -- "scope": "ais.balances.read ais.transactions.read-90days ais.transactions.read-history", -- "refresh_token": "AAJXXSdN ... Uiblz9ILkxNBlytRGA", -- "refresh_token_expires_in": 157784760, -- "expires_on": "1584644722" -- } -- Refresh the access token by sending a POST like this: -- -- POST /oauth2/token -- Headers: -- Content-Type: application/x-www-form-urlencoded -- Authorization: Basic BASE64(CLIENT_ID + ":" + CLIENT_SECRET) -- -- Body (x-www-form-urlencoded): -- grant_type: refresh_token -- refresh_token: REFRESH_TOKEN DECLARE @req int -- Use "Chilkat_9_5_0.HttpRequest" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.HttpRequest', @req OUT EXEC sp_OAMethod @req, 'AddParam', NULL, 'grant_type', 'refresh_token' EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'refresh_token' EXEC sp_OAMethod @req, 'AddParam', NULL, 'refresh_token', @sTmp0 DECLARE @http int -- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT -- Causes the "Authorization: Basic BASE64(CLIENT_ID + ":" + CLIENT_SECRET)" header to be added.. EXEC sp_OASetProperty @http, 'BasicAuth', 1 EXEC sp_OASetProperty @http, 'Login', 'YOUR_APP_CLIENT_ID' EXEC sp_OASetProperty @http, 'Password', 'YOUR_APP_CLIENT_SECRET' DECLARE @resp int EXEC sp_OAMethod @http, 'PostUrlEncoded', @resp OUT, 'https://api-sandbox.rabobank.nl/openapi/sandbox/oauth2/token', @req EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @req EXEC @hr = sp_OADestroy @http RETURN END -- Load the JSON response. EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT EXEC sp_OAMethod @json, 'Load', @success OUT, @sTmp0 EXEC sp_OASetProperty @json, 'EmitCompact', 0 -- Show the JSON response. EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT PRINT @sTmp0 EXEC sp_OAGetProperty @resp, 'StatusCode', @iTmp0 OUT PRINT 'Response status code: ' + @iTmp0 -- If the response status code is not 200, then it's an error. EXEC sp_OAGetProperty @resp, 'StatusCode', @iTmp0 OUT IF @iTmp0 <> 200 BEGIN EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @req EXEC @hr = sp_OADestroy @http RETURN END EXEC @hr = sp_OADestroy @resp -- Save the refreshed access token JSON to a file for future requests. DECLARE @fac int -- Use "Chilkat_9_5_0.FileAccess" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.FileAccess', @fac OUT EXEC sp_OAMethod @json, 'Emit', @sTmp0 OUT EXEC sp_OAMethod @fac, 'WriteEntireTextFile', @success OUT, 'qa_data/tokens/rabobank.json', @sTmp0, 'utf-8', 0 EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @req EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @fac END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.