Files
tsGmail/GmailTokenManager.cs
2025-09-18 13:00:36 +02:00

31 lines
1.1 KiB
C#

using Google.Apis.Auth.OAuth2;
using Google.Apis.Util.Store;
using System.IO;
using System.Threading;
using System.Threading.Tasks;
public static class GmailTokenManager
{
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 credencial = await GoogleWebAuthorizationBroker.AuthorizeAsync(
// GoogleClientSecrets.FromStream(stream).Secrets,
// new[] { "https://www.googleapis.com/auth/gmail.send" },
// config.Usuario,
// CancellationToken.None,
// new FileDataStore(config.TokenFolder, true)
//);
var credencial = await GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.FromStream(stream).Secrets,
new[] { "https://mail.google.com/" },
config.Usuario,
CancellationToken.None,
new FileDataStore(config.TokenFolder, true)
);
return await credencial.GetAccessTokenForRequestAsync();
}
}