/// <summary> /// Asynchronously reauthorizes the user. This method should be called if the users want to authorize after /// they revoked the token. /// </summary> /// <param name="userCredential">The current user credential. Its <see cref="UserCredential.Token"/> will be /// updated. </param> /// <param name="taskCancellationToken">Cancellation token to cancel an operation.</param> public static async Task ReauthorizeAsync(UserCredential userCredential, CancellationToken taskCancellationToken) { var installedApp = new AuthorizationCodeWindowsInstalledApp(userCredential.Flow); // Create an authorization code installed app instance and authorize the user. UserCredential newUserCredential = await installedApp.AuthorizeAsync( userCredential.UserId, taskCancellationToken).ConfigureAwait(false); userCredential.Token = newUserCredential.Token; }
/// <summary>Asynchronously authorizes the specified user.</summary> /// <remarks> /// It uses <see cref="Google.Apis.Util.Store.StorageDataStore"/> as the flow's data store by default. /// </remarks> /// <param name="clientSecrets">The client secrets URI.</param> /// <param name="scopes"> /// The scopes which indicate the Google API access your application is requesting. /// </param> /// <param name="user">The user to authorize.</param> /// <param name="taskCancellationToken">Cancellation token to cancel an operation.</param> /// <returns>User credential.</returns> private static async Task<UserCredential> AuthorizeAsync(ClientSecrets clientSecrets, IEnumerable<string> scopes, string user, CancellationToken taskCancellationToken) { var initializer = new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = clientSecrets, Scopes = scopes, DataStore = new StorageDataStore() }; var installedApp = new AuthorizationCodeWindowsInstalledApp(new GoogleAuthorizationCodeFlow(initializer)); return await installedApp.AuthorizeAsync(user, taskCancellationToken).ConfigureAwait(false); }
/// <summary>Asynchronously authorizes the specified user.</summary> /// <remarks> /// It uses <see cref="Google.Apis.Util.Store.StorageDataStore"/> as the flow's data store by default. /// </remarks> /// <param name="clientSecrets">The client secrets URI.</param> /// <param name="scopes"> /// The scopes which indicate the Google API access your application is requesting. /// </param> /// <param name="user">The user to authorize.</param> /// <param name="taskCancellationToken">Cancellation token to cancel an operation.</param> /// <returns>User credential.</returns> public static async Task <UserCredential> AuthorizeAsync(ClientSecrets clientSecrets, IEnumerable <string> scopes, string user, CancellationToken taskCancellationToken) { var initializer = new GoogleAuthorizationCodeFlow.Initializer { ClientSecrets = clientSecrets, Scopes = scopes, DataStore = new StorageDataStore() }; var installedApp = new AuthorizationCodeWindowsInstalledApp(new GoogleAuthorizationCodeFlow(initializer)); return(await installedApp.AuthorizeAsync(user, taskCancellationToken).ConfigureAwait(false)); }