Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google.Apis client for C#sharp auth using refresh token

I'm using new beta Google APIs Client Library for .NET to load tasks lists of more than one user. It's classified as "installed aplication" (according to google dev. console) with more than one authorized user accounts. It's really simple to authenticate one user (using google.apis) but I cannot figure out, how to do the same with refresh tokens, and how to use this tokens to get service object.

Sample code:

var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
            GoogleClientSecrets.Load(GoogleTools.GenerateStreamFromString(GoogleTools.Cred)).Secrets,
new[] { TasksService.Scope.Tasks },
"user", CancellationToken.None, new FileDataStore("Tasks.Auth.Store")).Result;         


// Create the service.
service = new TasksService(new BaseClientService.Initializer()
{
     HttpClientInitializer = credential,
     ApplicationName = "Tasks API Sample",
});

I want to construct object credential using refresh token, but I'm really lost and cannot find any appropriate documentation.

like image 375
eCorke Avatar asked Sep 11 '26 21:09

eCorke


1 Answers

You can check if the current Token is expired and Refresh using the code below:

if (credential.Token.IsExpired(Google.Apis.Util.SystemClock.Default))
{
  var refreshResult = credential.RefreshTokenAsync(CancellationToken.None).Result;
}

After that the credential has the credential.Token.AccessToken and credential.Token.RefreshToken refreshed

like image 152
mqueirozcorreia Avatar answered Sep 14 '26 11:09

mqueirozcorreia



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!