![]() |
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
(SQL Server) Get Google API Access Token using P12 Service Account KeyDemonstrates how to get a Google API access token using a P12 service account key.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr 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. -- -------------------------------------------------------------------------------- -- For a step-by-step guide for setting up your Google Workspace service account, -- see Setup Google Workspace Account for Sending SMTP GMail from a Service Account -- -------------------------------------------------------------------------------- -- First load the PKCS12 (.p12 / .pfx) into a PFX object. DECLARE @pfx int EXEC @hr = sp_OACreate 'Chilkat.Pfx', @pfx OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @pfx, 'LoadPfxFile', @success OUT, 'qa_data/pfx/chilkat25-cbd7b42afbd8.p12', 'notasecret' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @pfx, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @pfx RETURN END DECLARE @gAuth int EXEC @hr = sp_OACreate 'Chilkat.AuthGoogle', @gAuth OUT EXEC sp_OAMethod @gAuth, 'SetP12', @success OUT, @pfx -- The ISS is your service account email address ending in gserviceaccount.com. DECLARE @iss nvarchar(4000) SELECT @iss = 'chilkatsvc@chilkat25.iam.gserviceaccount.com' -- The scope is always the following string: DECLARE @scope nvarchar(4000) SELECT @scope = 'https://mail.google.com/' -- The sub is your company email address DECLARE @oauth_sub nvarchar(4000) SELECT @oauth_sub = 'info@chilkat.xyz' -- The access token is valid for this number of seconds. DECLARE @numSec int SELECT @numSec = 3600 EXEC sp_OASetProperty @gAuth, 'EmailAddress', @iss EXEC sp_OASetProperty @gAuth, 'Scope', @scope EXEC sp_OASetProperty @gAuth, 'ExpireNumSeconds', @numSec EXEC sp_OASetProperty @gAuth, 'SubEmailAddress', @oauth_sub -- Connect to www.googleapis.com DECLARE @tlsSock int EXEC @hr = sp_OACreate 'Chilkat.Socket', @tlsSock OUT 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 @pfx 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 @pfx 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 EXEC @hr = sp_OADestroy @pfx EXEC @hr = sp_OADestroy @gAuth EXEC @hr = sp_OADestroy @tlsSock END GO |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.