DataFlex
DataFlex
Calendar: Refresh Expired OAuth2 Access Token
See more Microsoft Calendar Examples
Refreshes an expired OAuth2 access token.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
Variant vReq
Handle hoReq
Handle hoHttp
Variant vResp
Handle hoResp
Handle hoFac
String sTemp1
Integer iTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComLoadFile Of hoJson "qa_data/tokens/msGraphCalendar.json" To iSuccess
If (iSuccess <> True) Begin
Procedure_Return
End
Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
If (Not(IsComObjectCreated(hoReq))) Begin
Send CreateComObject of hoReq
End
Send ComAddParam To hoReq "grant_type" "refresh_token"
Send ComAddParam To hoReq "redirect_uri" "http://localhost:3017/"
Send ComAddParam To hoReq "client_id" "MICROSOFT-GRAPH-CLIENT-ID"
Send ComAddParam To hoReq "client_secret" "MICROSOFT-GRAPH-CLIENT-SECRET"
Get ComStringOf Of hoJson "refresh_token" To sTemp1
Send ComAddParam To hoReq "refresh_token" sTemp1
Send ComAddParam To hoReq "scope" "openid profile offline_access user.readwrite calendars.readwrite files.readwrite"
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
Set ComHttpVerb Of hoReq To "POST"
Set ComContentType Of hoReq To "application/x-www-form-urlencoded"
Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
If (Not(IsComObjectCreated(hoResp))) Begin
Send CreateComObject of hoResp
End
Get pvComObject of hoReq to vReq
Get pvComObject of hoResp to vResp
Get ComHttpReq Of hoHttp "https://login.microsoftonline.com/common/oauth2/v2.0/token" vReq vResp To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
// Load the JSON response.
Get ComBodyStr Of hoResp To sTemp1
Get ComLoad Of hoJson sTemp1 To iSuccess
Set ComEmitCompact Of hoJson To False
// Show the JSON response.
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
Get ComStatusCode Of hoResp To iTemp1
Showln "Response status code: " iTemp1
// If the response status code is not 200, then it's an error.
Get ComStatusCode Of hoResp To iTemp1
If (iTemp1 <> 200) Begin
Procedure_Return
End
// Save the refreshed access token JSON to a file for future requests.
Get Create (RefClass(cComCkFileAccess)) To hoFac
If (Not(IsComObjectCreated(hoFac))) Begin
Send CreateComObject of hoFac
End
Get ComEmit Of hoJson To sTemp1
Get ComWriteEntireTextFile Of hoFac "qa_data/tokens/msGraphCalendar.json" sTemp1 "utf-8" False To iSuccess
Showln "Success."
End_Procedure