correcciones ObtenerAccessTokenAsync
This commit is contained in:
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user