IAChat/MSGraph/akjkpvjm.5o3~
2024-11-28 22:09:05 -03:00

52 lines
1.6 KiB
Plaintext

using Microsoft.Identity.Client;
namespace IAChat.MSGraph
{
public class TokenManager
{
public class GetToken
{
private readonly IConfiguration _configuration;
private readonly string _tenantId;
private readonly string _clientId;
public GetToken(IConfiguration configuration)
{
_configuration = configuration;
_tenantId = _configuration.GetSection("AppTenantId").Value;
_clientId = _configuration.GetSection("AppClientID").Value;
}
public async Task<string> ObterTokenParaTeams(string userEmail)
{
// Configuração do contexto de autenticação
var app = PublicClientApplicationBuilder
.Create(_clientId)
.WithAuthority(AzureCloudInstance.AzurePublic, _tenantId)
.Build();
// Definir os escopos necessários
string[] scopes = new string[] {
"https://graph.microsoft.com/.default",
"User.Read"
};
try
{
var result = await app.AcquireTokenInteractive(scopes)
.WithLoginHint(userEmail)
.ExecuteAsync();
return result.AccessToken;
}
catch (Exception ex)
{
// Tratamento de erro
Console.WriteLine($"Erro ao obter token: {ex.Message}");
return null;
}
}
}
}
}