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
(PowerBuilder) Azure REST API Access TokenDemonstrates how to request an Azure REST API OAUTH2 access token. Note: In order to access resources a Service Principal needs to be created in your Tenant. It is really convenient to do it via AZ CLI: az ad sp create-for-rbac --name [APP_NAME] --password [CLIENT_SECRET]
integer li_rc oleobject loo_Rest integer li_BTls integer li_Port integer li_BAutoReconnect integer li_Success string ls_StrResponseBody integer li_RespStatusCode oleobject loo_Json // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loo_Rest = create oleobject // Use "Chilkat_9_5_0.Rest" for versions of Chilkat < 10.0.0 li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest") if li_rc < 0 then destroy loo_Rest MessageBox("Error","Connecting to COM object failed") return end if // URL: https://login.microsoftonline.com/TENANT_ID/oauth2/token li_BTls = 1 li_Port = 443 li_BAutoReconnect = 1 li_Success = loo_Rest.Connect("login.microsoftonline.com",li_Port,li_BTls,li_BAutoReconnect) if li_Success <> 1 then Write-Debug "ConnectFailReason: " + string(loo_Rest.ConnectFailReason) Write-Debug loo_Rest.LastErrorText destroy loo_Rest return end if // Add query params to the request. loo_Rest.AddQueryParam("grant_type","client_credentials") loo_Rest.AddQueryParam("client_id","APP_ID") loo_Rest.AddQueryParam("client_secret","CLIENT_SECRET") // Note: The resource must match the API for which you're using the access token.. loo_Rest.AddQueryParam("resource","https://management.azure.com/") ls_StrResponseBody = loo_Rest.FullRequestFormUrlEncoded("POST","/TENANT_ID/oauth2/token") if loo_Rest.LastMethodSuccess <> 1 then Write-Debug loo_Rest.LastErrorText destroy loo_Rest return end if li_RespStatusCode = loo_Rest.ResponseStatusCode if li_RespStatusCode >= 400 then Write-Debug "Response Status Code = " + string(li_RespStatusCode) Write-Debug "Response Header:" Write-Debug loo_Rest.ResponseHeader Write-Debug "Response Body:" Write-Debug ls_StrResponseBody destroy loo_Rest return end if loo_Json = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject") loo_Json.Load(ls_StrResponseBody) loo_Json.EmitCompact = 0 Write-Debug loo_Json.Emit() // The result is an access token such as the following: // { // "token_type": "Bearer", // "expires_in": "3600", // "ext_expires_in": "3600", // "expires_on": "1557864616", // "not_before": "1557860716", // "resource": "https://management.azure.com/", // "access_token": "eyJ0eXAiOiJKV1QiL ... 20UFDDOHEyUg" // } // We'll save this JSON to a file for other examples to use.. loo_Json.WriteFile("qa_data/tokens/azureToken.json") destroy loo_Rest destroy loo_Json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.