correcciones ObtenerAccessTokenAsync

This commit is contained in:
2025-09-22 19:49:44 +02:00
parent 8699a31142
commit 8dade76b6d

View File

@@ -6,18 +6,29 @@ using System.Threading.Tasks;
public static class GmailTokenManager public static class GmailTokenManager
{ {
public static async Task<string> ObtenerAccessTokenAsync(GmailConfig config) //public static async Task<string> ObtenerAccessTokenAsync(GmailConfig config)
{ //{
//var stream = new FileStream(config.ClientSecretPath, FileMode.Open, FileAccess.Read); // var stream = new MemoryStream(config.ClientSecret);
var stream = new MemoryStream(config.ClientSecret);
//var credencial = await GoogleWebAuthorizationBroker.AuthorizeAsync( // var credencial = await GoogleWebAuthorizationBroker.AuthorizeAsync(
// GoogleClientSecrets.FromStream(stream).Secrets, // GoogleClientSecrets.FromStream(stream).Secrets,
// new[] { "https://www.googleapis.com/auth/gmail.send" }, // new[] { "https://mail.google.com/" },
// config.Usuario, // config.Usuario,
// CancellationToken.None, // CancellationToken.None,
// new FileDataStore(config.TokenFolder, true) // new FileDataStore(config.TokenFolder, true)
//); // );
// return await credencial.GetAccessTokenForRequestAsync();
//}
private static readonly SemaphoreSlim _tokenSemaphore = new SemaphoreSlim(1, 1);
public static async Task<string> ObtenerAccessTokenAsync(GmailConfig config)
{
var stream = new MemoryStream(config.ClientSecret);
await _tokenSemaphore.WaitAsync();
try
{
var credencial = await GoogleWebAuthorizationBroker.AuthorizeAsync( var credencial = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.FromStream(stream).Secrets, GoogleClientSecrets.FromStream(stream).Secrets,
new[] { "https://mail.google.com/" }, new[] { "https://mail.google.com/" },
@@ -28,4 +39,9 @@ public static class GmailTokenManager
return await credencial.GetAccessTokenForRequestAsync(); return await credencial.GetAccessTokenForRequestAsync();
} }
finally
{
_tokenSemaphore.Release();
}
}
} }