B4X
B4X
ABN AMRO OAuth2 Client Credentials Authentication
See more ABN AMRO Examples
Demonstrates how to obtain an access token for an ABN AMRO online API using OAuth2 with the Client Credentials flow.Chilkat B4X Downloads
Dim success As Boolean = False
' This example requires the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
' This example sends the following CURL request:
' curl -X POST -k https://auth-sandbox.connect.abnamro.com:8443/as/token.oauth2 \
' -v \
' --cert TPPCertificate.crt \
' --key TPPprivateKey.key \
' -H 'Cache-Control: no-cache' \
' -H 'Content-Type: application/x-www-form-urlencoded' \
' -d 'grant_type=client_credentials&client_id=TPP_test&scope=psd2:payment:sepa:write psd2:payment:sepa:read'
Dim cert As ChilkatCert
cert.Initialize("cert")
success = cert.LoadFromFile("qa_data/certs/TPPCertificate.cer")
If success = False Then
Log(cert.LastErrorText)
Return
End If
Dim bdKey As ChilkatBinData
bdKey.Initialize
success = bdKey.LoadFile("qa_data/certs/TPPprivateKey.key")
Dim privKey As ChilkatPrivateKey
privKey.Initialize("privKey")
success = privKey.LoadAnyFormat(bdKey, "passwordIfNeeded")
If success = False Then
Log(privKey.LastErrorText)
Return
End If
success = cert.SetPrivateKey(privKey)
If success = False Then
Log(cert.LastErrorText)
Return
End If
Dim http As ChilkatHttp
http.Initialize("http")
success = http.SetSslClientCert(cert)
If success = False Then
Log(http.LastErrorText)
Return
End If
Dim req As ChilkatHttpRequest
req.Initialize
req.AddParam("grant_type", "client_credentials")
req.AddParam("client_id", "TPP_test")
req.AddParam("scope", "psd2:payment:sepa:write psd2:payment:sepa:read")
req.HttpVerb = "POST"
req.ContentType = "application/x-www-form-urlencoded"
Dim resp As ChilkatHttpResponse
resp.Initialize
success = http.HttpReq("https://auth-sandbox.connect.abnamro.com:8443/as/token.oauth2", req, resp)
If success = False Then
Log(http.LastErrorText)
Return
End If
If resp.StatusCode <> 200 Then
Log(resp.BodyStr)
Return
End If
' Get the JSON result:
' {"access_token":"TIhycwl8rfrZPkXGw15mwldASAAK","token_type":"Bearer","expires_in":7200}
Dim json As ChilkatJsonObject
json.Initialize
json.Load(resp.BodyStr)
Log("access_token: " & json.StringOf("access_token"))
Log("token_type: " & json.StringOf("token_type"))
Log("expires_in: " & json.StringOf("expires_in"))