Rust
Rust
Google Drive Refresh Access Token
See more Google Drive Examples
Demonstrates how to automatically refresh the access token when it expires.Chilkat Rust Downloads
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let _ = 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"
// }
let json = chilkat::JsonObject::new();
let token_file_path = "qa_data/tokens/googleDrive.json".to_string();
let _ = json.load_file(&token_file_path);
let oauth2 = chilkat::OAuth2::new();
oauth2.set_access_token(&json.string_of("access_token").unwrap_or_default());
oauth2.set_refresh_token(&json.string_of("refresh_token").unwrap_or_default());
oauth2.set_authorization_endpoint("https://accounts.google.com/o/oauth2/v2/auth");
oauth2.set_token_endpoint("https://www.googleapis.com/oauth2/v4/token");
// Replace these with actual values.
oauth2.set_client_id("GOOGLE-CLIENT-ID");
oauth2.set_client_secret("GOOGLE-CLIENT-SECRET");
oauth2.set_scope("https://www.googleapis.com/auth/drive");
// Use OAuth2 to refresh the access token.
if oauth2.refresh_access_token().is_err() {
println!("{}", oauth2.last_error_text());
return;
}
println!("{}", oauth2.access_token_response());
// Save the new access token to our JSON file (so we can refresh it again when needed).
let _ = json.update_string("access_token", &oauth2.access_token());
let fac = chilkat::FileAccess::new();
let _ = fac.write_entire_text_file(&token_file_path, &json.emit().unwrap_or_default(), "utf-8", false);
println!("Access Token Refreshed!");