Lua
Lua
Google Drive Refresh Access Token
See more Google Drive Examples
Demonstrates how to automatically refresh the access token when it expires.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local success = true
-- 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"
-- }
local json = chilkat.JsonObject.new()
local tokenFilePath = "qa_data/tokens/googleDrive.json"
json:load_file(tokenFilePath)
local oauth2 = chilkat.OAuth2.new()
oauth2.access_token = json:string_of("access_token")
oauth2.refresh_token = json:string_of("refresh_token")
oauth2.authorization_endpoint = "https://accounts.google.com/o/oauth2/v2/auth"
oauth2.token_endpoint = "https://www.googleapis.com/oauth2/v4/token"
-- Replace these with actual values.
oauth2.client_id = "GOOGLE-CLIENT-ID"
oauth2.client_secret = "GOOGLE-CLIENT-SECRET"
oauth2.scope = "https://www.googleapis.com/auth/drive"
-- Use OAuth2 to refresh the access token.
success = oauth2:refresh_access_token()
if not success then
print(oauth2.last_error_text)
return
end
print(oauth2.access_token_response)
-- Save the new access token to our JSON file (so we can refresh it again when needed).
json:update_string("access_token", oauth2.access_token)
local fac = chilkat.FileAccess.new()
fac:write_entire_text_file(tokenFilePath, json:emit(), "utf-8", false)
print("Access Token Refreshed!")