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) Get Access Token for Google Tasks using Service Account JSON KeyDemonstrates how to get an access token for the Google Tasks API using a Service Account JSON key.
-- 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. -- First load the JSON key into a string. DECLARE @fac int -- Use "Chilkat_9_5_0.FileAccess" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.FileAccess', @fac OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @jsonKey nvarchar(4000) EXEC sp_OAMethod @fac, 'ReadEntireTextFile', @jsonKey OUT, 'qa_data/googleSvcAccountKeys/ChilkatCloud-48f7737c7505.json', 'utf-8' EXEC sp_OAGetProperty @fac, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @fac, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @fac RETURN END -- A JSON private key should look like this: -- { -- "type": "service_account", -- "project_id": "chilkatcloud", -- "private_key_id": "48f7737c7505bb88eee6a20d09993e10605d466e", -- "private_key": "-----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----\n", -- "client_email": "pip-564@chilkatcloud.iam.gserviceaccount.com", -- "client_id": "109982228323456925225", -- "auth_uri": "https://accounts.google.com/o/oauth2/auth", -- "token_uri": "https://oauth2.googleapis.com/token", -- "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", -- "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/pip-564%40chilkatcloud.iam.gserviceaccount.com" -- } DECLARE @gAuth int -- Use "Chilkat_9_5_0.AuthGoogle" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.AuthGoogle', @gAuth OUT EXEC sp_OASetProperty @gAuth, 'JsonKey', @jsonKey -- Choose the scope for read/write access. EXEC sp_OASetProperty @gAuth, 'Scope', 'https://www.googleapis.com/auth/tasks' -- Request an access token that is valid for this many seconds. EXEC sp_OASetProperty @gAuth, 'ExpireNumSeconds', 3600 EXEC sp_OASetProperty @gAuth, 'SubEmailAddress', '' -- Connect to www.googleapis.com using TLS DECLARE @tlsSock int -- Use "Chilkat_9_5_0.Socket" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Socket', @tlsSock OUT DECLARE @success int EXEC sp_OAMethod @tlsSock, 'Connect', @success OUT, 'www.googleapis.com', 443, 1, 5000 IF @success <> 1 BEGIN EXEC sp_OAGetProperty @tlsSock, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @fac EXEC @hr = sp_OADestroy @gAuth EXEC @hr = sp_OADestroy @tlsSock RETURN END -- Send the request to obtain the access token. EXEC sp_OAMethod @gAuth, 'ObtainAccessToken', @success OUT, @tlsSock IF @success <> 1 BEGIN EXEC sp_OAGetProperty @gAuth, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @fac EXEC @hr = sp_OADestroy @gAuth EXEC @hr = sp_OADestroy @tlsSock RETURN END -- Examine the access token: EXEC sp_OAGetProperty @gAuth, 'AccessToken', @sTmp0 OUT PRINT 'Access Token: ' + @sTmp0 -- Save our access token to a file. EXEC sp_OAGetProperty @gAuth, 'AccessToken', @sTmp0 OUT EXEC sp_OAMethod @fac, 'WriteEntireTextFile', @success OUT, 'qa_data/tokens/googleTasks.txt', @sTmp0, 'utf-8', 0 EXEC @hr = sp_OADestroy @fac EXEC @hr = sp_OADestroy @gAuth EXEC @hr = sp_OADestroy @tlsSock END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.