Objective-C
Objective-C
Google Drive Refresh Access Token
See more Google Drive Examples
Demonstrates how to automatically refresh the access token when it expires.Chilkat Objective-C Downloads
#import <CkoJsonObject.h>
#import <NSString.h>
#import <CkoOAuth2.h>
#import <CkoFileAccess.h>
BOOL success = NO;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
success = YES;
// 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"
// }
CkoJsonObject *json = [[CkoJsonObject alloc] init];
NSString *tokenFilePath = @"qa_data/tokens/googleDrive.json";
[json LoadFile: tokenFilePath];
CkoOAuth2 *oauth2 = [[CkoOAuth2 alloc] init];
oauth2.AccessToken = [json StringOf: @"access_token"];
oauth2.RefreshToken = [json StringOf: @"refresh_token"];
oauth2.AuthorizationEndpoint = @"https://accounts.google.com/o/oauth2/v2/auth";
oauth2.TokenEndpoint = @"https://www.googleapis.com/oauth2/v4/token";
// Replace these with actual values.
oauth2.ClientId = @"GOOGLE-CLIENT-ID";
oauth2.ClientSecret = @"GOOGLE-CLIENT-SECRET";
oauth2.Scope = @"https://www.googleapis.com/auth/drive";
// Use OAuth2 to refresh the access token.
success = [oauth2 RefreshAccessToken];
if (success != YES) {
NSLog(@"%@",oauth2.LastErrorText);
return;
}
NSLog(@"%@",oauth2.AccessTokenResponse);
// Save the new access token to our JSON file (so we can refresh it again when needed).
[json UpdateString: @"access_token" value: oauth2.AccessToken];
CkoFileAccess *fac = [[CkoFileAccess alloc] init];
[fac WriteEntireTextFile: tokenFilePath fileData: [json Emit] charset: @"utf-8" includePreamble: NO];
NSLog(@"%@",@"Access Token Refreshed!");