![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java JavaScript 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) curl with OAuth2 Client CredentialsSee more CURL ExamplesThis example shows how to run a simple CURL command with an OAuth2 access token for authorization. We use CURL to retrieve a SharePoint site ID, and Chilkat automatically fetches the OAuth2 access token using the provided credentials.Note: This example requires Chilkat v11.5.0 or greater.
-- 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) DECLARE @success int SELECT @success = 0 -- This example will run the following curl command -- curl -X GET "https://graph.microsoft.com/v1.0/sites/{{sharepoint_hostname}}:/sites/{{site_name}}" \ -- -H "Authorization: Bearer ACCESS_TOKEN" \ -- -H "Accept: application/json" DECLARE @sb int EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sb OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END EXEC sp_OAMethod @sb, 'AppendLn', @success OUT, 'curl -X GET "https://graph.microsoft.com/v1.0/sites/{{sharepoint_hostname}}:/sites/{{site_name}}" \' EXEC sp_OAMethod @sb, 'AppendLn', @success OUT, ' -H "Authorization: Bearer ACCESS_TOKEN" \' EXEC sp_OAMethod @sb, 'AppendLn', @success OUT, ' -H "Accept: application/json"' -- Build the JSON that provides information for getting the OAuth2 access token using the OAuth2 client credentials flow. DECLARE @jsonOAuth2 int EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonOAuth2 OUT EXEC sp_OAMethod @jsonOAuth2, 'UpdateString', @success OUT, 'oauth2.client_id', 'CLIENT_ID' EXEC sp_OAMethod @jsonOAuth2, 'UpdateString', @success OUT, 'oauth2.client_secret', 'CLIENT_SECRET' EXEC sp_OAMethod @jsonOAuth2, 'UpdateString', @success OUT, 'oauth2.scope', 'https://graph.microsoft.com/.default' EXEC sp_OAMethod @jsonOAuth2, 'UpdateString', @success OUT, 'oauth2.token_endpoint', 'https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token' DECLARE @httpCurl int EXEC @hr = sp_OACreate 'Chilkat.HttpCurl', @httpCurl OUT -- Provide the information for getting the OAuth2 access token from the token endpoint -- Note: The Authorization header specified in the curl command will be ignored and replaced using the OAuth2 access token obtained at runtime from the token endpoint. EXEC sp_OAMethod @httpCurl, 'SetAuth', @success OUT, @jsonOAuth2 -- The placeholders {{sharepoint_hostname}} and {{site_name}} represent variables that must be defined before execution. -- When DoYourThing runs the curl command, it automatically substitutes these placeholders with their corresponding values. -- Below are the values assigned to these variables: EXEC sp_OAMethod @httpCurl, 'SetVar', NULL, 'sharepoint_hostname', 'example.sharepoint.com' EXEC sp_OAMethod @httpCurl, 'SetVar', NULL, 'site_name', 'test' -- Run the curl command. EXEC sp_OAMethod @sb, 'GetAsString', @sTmp0 OUT EXEC sp_OAMethod @httpCurl, 'DoYourThing', @success OUT, @sTmp0 IF @success = 0 BEGIN EXEC sp_OAGetProperty @httpCurl, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @sb EXEC @hr = sp_OADestroy @jsonOAuth2 EXEC @hr = sp_OADestroy @httpCurl RETURN END DECLARE @responseJson int EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @responseJson OUT EXEC sp_OASetProperty @responseJson, 'EmitCompact', 0 EXEC sp_OAMethod @httpCurl, 'GetResponseJson', @success OUT, @responseJson DECLARE @statusCode int EXEC sp_OAGetProperty @httpCurl, 'StatusCode', @statusCode OUT PRINT 'response status code: ' + @statusCode EXEC sp_OAMethod @responseJson, 'Emit', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @sb EXEC @hr = sp_OADestroy @jsonOAuth2 EXEC @hr = sp_OADestroy @httpCurl EXEC @hr = sp_OADestroy @responseJson END GO |
||||
© 2000-2026 Chilkat Software, Inc. All Rights Reserved.