https://learn.microsoft.com/en-us/graph ... ial-step=1
Затем я адаптировал приложение для чтения почты. Это отлично работает для моей почты. Однако мне нужен доступ к общему почтовому ящику, к которому у меня есть доступ, и я могу читать электронные письма в Outlook.
Я попытался сделать это, используя следующий код:
Код: Выделить всё
public static async Task GetMailAsync()
{
var graphClient = GetAuthenticatedClient();
var mail = await graphClient.Users["usersemail@somewhere.com"].MailFolders.Inbox.Messages.Request()
.GetAsync();
return mail;
}

Вот мой код авторизации:
Код: Выделить всё
private static GraphServiceClient GetAuthenticatedClient()
{
return new GraphServiceClient(
new DelegateAuthenticationProvider(
async (requestMessage) =>
{
// Get the signed in user's id and create a token cache
string signedInUserId = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
HttpContextWrapper httpContext = new HttpContextWrapper(HttpContext.Current);
TokenCache tokenStore = new SessionTokenStore(signedInUserId,
httpContext).GetMsalCacheInstance();
var idClient = new ConfidentialClientApplication(
appId, redirectUri, new ClientCredential(appSecret),
tokenStore, null);
var accounts = await idClient.GetAccountsAsync();
// By calling this here, the token can be refreshed
// if it's expired right before the Graph call is made
var result = await idClient.AcquireTokenSilentAsync(
graphScopes.Split(' '), accounts.FirstOrDefault());
requestMessage.Headers.Authorization =
new AuthenticationHeaderValue("Bearer", result.AccessToken);
}));
}

Может ли кто-нибудь заметить, что я здесь делаю не так? В некоторых сообщениях говорится, что это невозможно сделать таким способом (Microsoft Graph API .NET не может читать общую почту, Microsoft Graph API SDK .NET Проблемы с получением электронных писем других пользователей), но я могу заставить его работать в обозревателе графов.
Буду благодарен за любую помощь, включая советы о том, как я могу улучшить свои вопросы.
Подробнее здесь: https://stackoverflow.com/questions/542 ... n-net-core
Мобильная версия