#c# #microsoft-graph-api
Вопрос:
GraphAPI позволяет мне проходить аутентификацию в моем приложении, но возвращаемый ресурс не может быть обнаружен при попытке получить мои сообщения электронной почты, календарь или что-либо еще. После проверки подлинности область, возвращенная из запроса на проверку подлинности, совпадает с областью, которую я настроил на портале Azure для приложения. Информация моего профиля также верна.
Я был бы очень признателен за любую помощь в этом.
Спасибо!
string scope = "https://graph.microsoft.com/.default";
var builder = PublicClientApplicationBuilder.Create(ClientId)
.WithAuthority($"{Authority}{Tenant}")
.WithDefaultRedirectUri();
_clientApp = builder.Build();
TokenCacheHelper.EnableSerialization(PublicClientApp.UserTokenCache);
AuthenticationResult authResult = null;
IAccount firstAccount;
var accounts = await PublicClientApp.GetAccountsAsync();
firstAccount = accounts.FirstOrDefault();
try
{
authResult = await PublicClientApp.AcquireTokenSilent(scope, firstAccount)
.ExecuteAsync();
}
catch (MsalUiRequiredException)
{
try
{
authResult = await PublicClientApp.AcquireTokenInteractive(scope)
.WithAccount(firstAccount)
.WithPrompt(Microsoft.Identity.Client.Prompt.SelectAccount)
.ExecuteAsync();
}
catch (MsalException msalex)
{
Console.WriteLine($"Error Acquiring Token:{System.Environment.NewLine}{msalex}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Error Acquiring Token Silently:{System.Environment.NewLine}{ex}");
return false;
}
if (authResult != null)
{
try
{
var graphClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
(requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", authResult.AccessToken);
return (Task.FromResult(0));
}
));
var me = await graphClient.Me.Request().GetAsync();
mUserName = me.DisplayName; // This works!
try
{
var messages = await graphClient.Me.Messages
.Request() // This fails
.GetAsync();
}
catch (Exception) {}
}
}
}
Ответ №1:
Спасибо за обращение, вы подготовили почтовый ящик для этого пользователя? Отсутствие почтового ящика может быть причиной, по которой эта ошибка возвращается при попытке получить сообщения.
Комментарии:
1. Приведенный выше код предлагает мне войти в систему. Я получаю эту ошибку в своем личном аккаунте. Я могу видеть свои сообщения при входе в обозреватель графиков.