Sample code for 30+ languages & platforms
Xojo Plugin

AzureWebsites OAuth2 Password Flow

See more OAuth2 Examples

Demonstrates how to do OAuth 2.0 password flow for azurewebsites.net.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

Dim http As New Chilkat.Http

Dim req As New Chilkat.HttpRequest
req.HttpVerb = "POST"
req.Path = "/token"
req.ContentType = "application/x-www-form-urlencoded"
req.AddParam "grant_type","password"
req.AddParam "username","your_username"
req.AddParam "password","your_password"

Dim tokenEndpoint As String
tokenEndpoint = "https://your_api.azurewebsites.net/token"

Dim resp As New Chilkat.HttpResponse
success = http.HttpReq(tokenEndpoint,req,resp)
If (success = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

Dim sbResponseBody As New Chilkat.StringBuilder
success = resp.GetBodySb(sbResponseBody)
Dim jResp As New Chilkat.JsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False

System.DebugLog("Response Body:")
System.DebugLog(jResp.Emit())

// Sample JSON response:

// {
//   "access_token": "NQGHn ... xTS",
//   "token_type": "bearer",
//   "expires_in": 1209599,
//   "userName": "your_username",
//   ".issued": "Mon, 27 Apr 2020 23:49:35 GMT",
//   ".expires": "Mon, 11 May 2020 23:49:35 GMT"
// }

Dim respStatusCode As Int32
respStatusCode = resp.StatusCode
System.DebugLog("Response Status Code = " + Str(respStatusCode))
If (respStatusCode >= 400) Then
    System.DebugLog("Response Header:")
    System.DebugLog(resp.Header)
    System.DebugLog("Failed.")
    Return
End If

// ----------------------------------
// Use the OAuth2 token in a request.
// For example...

Dim sbXml As New Chilkat.StringBuilder
success = sbXml.LoadFile("c:/someDir/someXmlFile.xml","utf-8")
If (success = False) Then
    System.DebugLog("Failed to load the XML file.")
    Return
End If

// Get the OAuth2 token and use it for authentication
http.AuthToken = jResp.StringOf("token")

Dim destUrl As String
destUrl = "https://your_api.azurewebsites.net/destinationUrl"
success = http.HttpSb("POST",destUrl,sbXml,"utf-8","application/xml",resp)
If (success = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

respStatusCode = resp.StatusCode
System.DebugLog("Response Status Code = " + Str(respStatusCode))
If (respStatusCode >= 400) Then
    System.DebugLog("Response Header:")
    System.DebugLog(resp.Header)
    System.DebugLog("Failed.")
    Return
End If

// Examine the response body
System.DebugLog(resp.BodyStr)