PowerBuilder
PowerBuilder
Azure OAuth2 Client Credentials Grant Flow
See more OAuth2 Examples
Demonstrates how to get an OAuth2 access token for an Azure Registered App using the Client Credentials Grant Flow.Note: Your Azure app must be registered as a single-tenant app to use client credentials.
Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Http
oleobject loo_Req
string ls_Url
oleobject loo_Resp
integer li_StatusCode
oleobject loo_Json
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
loo_Http = create oleobject
li_rc = loo_Http.ConnectToNewObject("Chilkat.Http")
if li_rc < 0 then
destroy loo_Http
MessageBox("Error","Connecting to COM object failed")
return
end if
loo_Req = create oleobject
li_rc = loo_Req.ConnectToNewObject("Chilkat.HttpRequest")
loo_Req.AddParam("client_secret","CLIENT_SECRET")
loo_Req.AddParam("client_id","CLIENT_ID")
// See Understanding Scopes in Azure OAuth2 Client Credentials Flow
loo_Req.AddParam("scope","https://graph.microsoft.com/.default")
loo_Req.AddParam("grant_type","client_credentials")
// Note: Your Azure app must be registered as a single-tenant app to use client credentials.
// Use your own tenant ID, for example 4d8fdd66-66d1-43b0-ae5c-e31b4b7de5cd
ls_Url = "https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token"
loo_Req.HttpVerb = "POST"
loo_Req.ContentType = "application/x-www-form-urlencoded"
loo_Resp = create oleobject
li_rc = loo_Resp.ConnectToNewObject("Chilkat.HttpResponse")
li_Success = loo_Http.HttpReq(ls_Url,loo_Req,loo_Resp)
if li_Success = 0 then
Write-Debug loo_Http.LastErrorText
destroy loo_Http
destroy loo_Req
destroy loo_Resp
return
end if
li_StatusCode = loo_Resp.StatusCode
Write-Debug "Response status code = " + string(li_StatusCode)
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.Load(loo_Resp.BodyStr)
loo_Json.EmitCompact = 0
Write-Debug loo_Json.Emit()
// Sample successful output:
// {
// "token_type": "Bearer",
// "expires_in": 3599,
// "ext_expires_in": 3599,
// "access_token": "eyJ0eX...K0jOERg"
// }
if li_StatusCode = 200 then
loo_Json.WriteFile("qa_data/tokens/azureClientCredentialsToken.json")
Write-Debug "Success."
else
Write-Debug "Failed."
end if
destroy loo_Http
destroy loo_Req
destroy loo_Resp
destroy loo_Json