DataFlex
DataFlex
Google Drive Refresh Access Token
See more Google Drive Examples
Demonstrates how to automatically refresh the access token when it expires.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
String sTokenFilePath
Handle hoOauth2
Handle hoFac
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Move True To iSuccess
// This example uses a previously obtained access token having permission for the
// Google Drive scope.
// The access token (and refresh token) was previously saved to a JSON file with this format:
// See Get Google Drive OAuth2 Access Token
// {
// "access_token": "ya29.Gls-BsdxTWuenChv ... yzVIrXikkLxu5T6dy4I6GjADFardoz4Lruw",
// "expires_in": 3600,
// "refresh_token": "1/tMBJ ... 27D-Hk6rpQYBA",
// "scope": "https://www.googleapis.com/auth/drive",
// "token_type": "Bearer"
// }
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Move "qa_data/tokens/googleDrive.json" To sTokenFilePath
Get ComLoadFile Of hoJson sTokenFilePath To iSuccess
Get Create (RefClass(cComChilkatOAuth2)) To hoOauth2
If (Not(IsComObjectCreated(hoOauth2))) Begin
Send CreateComObject of hoOauth2
End
Get ComStringOf Of hoJson "access_token" To sTemp1
Set ComAccessToken Of hoOauth2 To sTemp1
Get ComStringOf Of hoJson "refresh_token" To sTemp1
Set ComRefreshToken Of hoOauth2 To sTemp1
Set ComAuthorizationEndpoint Of hoOauth2 To "https://accounts.google.com/o/oauth2/v2/auth"
Set ComTokenEndpoint Of hoOauth2 To "https://www.googleapis.com/oauth2/v4/token"
// Replace these with actual values.
Set ComClientId Of hoOauth2 To "GOOGLE-CLIENT-ID"
Set ComClientSecret Of hoOauth2 To "GOOGLE-CLIENT-SECRET"
Set ComScope Of hoOauth2 To "https://www.googleapis.com/auth/drive"
// Use OAuth2 to refresh the access token.
Get ComRefreshAccessToken Of hoOauth2 To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoOauth2 To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComAccessTokenResponse Of hoOauth2 To sTemp1
Showln sTemp1
// Save the new access token to our JSON file (so we can refresh it again when needed).
Get ComAccessToken Of hoOauth2 To sTemp1
Get ComUpdateString Of hoJson "access_token" sTemp1 To iSuccess
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 sTokenFilePath sTemp1 "utf-8" False To iSuccess
Showln "Access Token Refreshed!"
End_Procedure