PowerBuilder
PowerBuilder
Google Drive Refresh Access Token
See more Google Drive Examples
Demonstrates how to automatically refresh the access token when it expires.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Json
string ls_TokenFilePath
oleobject loo_Oauth2
oleobject loo_Fac
li_Success = 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
li_Success = 1
// 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"
// }
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
if li_rc < 0 then
destroy loo_Json
MessageBox("Error","Connecting to COM object failed")
return
end if
ls_TokenFilePath = "qa_data/tokens/googleDrive.json"
loo_Json.LoadFile(ls_TokenFilePath)
loo_Oauth2 = create oleobject
li_rc = loo_Oauth2.ConnectToNewObject("Chilkat.OAuth2")
loo_Oauth2.AccessToken = loo_Json.StringOf("access_token")
loo_Oauth2.RefreshToken = loo_Json.StringOf("refresh_token")
loo_Oauth2.AuthorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth"
loo_Oauth2.TokenEndpoint = "https://www.googleapis.com/oauth2/v4/token"
// Replace these with actual values.
loo_Oauth2.ClientId = "GOOGLE-CLIENT-ID"
loo_Oauth2.ClientSecret = "GOOGLE-CLIENT-SECRET"
loo_Oauth2.Scope = "https://www.googleapis.com/auth/drive"
// Use OAuth2 to refresh the access token.
li_Success = loo_Oauth2.RefreshAccessToken()
if li_Success <> 1 then
Write-Debug loo_Oauth2.LastErrorText
destroy loo_Json
destroy loo_Oauth2
return
end if
Write-Debug loo_Oauth2.AccessTokenResponse
// Save the new access token to our JSON file (so we can refresh it again when needed).
loo_Json.UpdateString("access_token",loo_Oauth2.AccessToken)
loo_Fac = create oleobject
li_rc = loo_Fac.ConnectToNewObject("Chilkat.FileAccess")
loo_Fac.WriteEntireTextFile(ls_TokenFilePath,loo_Json.Emit(),"utf-8",0)
Write-Debug "Access Token Refreshed!"
destroy loo_Json
destroy loo_Oauth2
destroy loo_Fac