Я пытаюсь прочитать мои сообщения с GraphClient, используя InteractiveAuthenticationProvider из пространства имен Microsoft.Graph.Auth
с PublicClientApplication от Microsoft.Identity.Client.
Это дает мне код: ErrorAccesDenied
Сообщение: в доступе отказано. Проверьте учетные данные и повторите попытку.
Как только я позвоню .Результат
strin userId = <User Id>
var redirectUri = "http://localhost";
string clientId = <Client ID>
string[] scopes = new string[] { "https://graph.microsoft.com/.default" };
var app = PublicClientApplicationBuilder.Create(clientId)
.WithRedirectUri(redirectUri)
.Build();
var authentication = new InteractiveAuthenticationProvider(app, scopes);
var client = new GraphServiceClient(authentication);
var messages = client.Users[userId].Messages.Request().GetAsync().Result; // <- Error Here Because of the .Result
Я поместил все возможные области в свое разрешение приложения: User.Read, User.Read.All , Mail.Read, MailboxSettings.Read ... для приложения и делегированных разрешений. И все они получили согласие администратора.
Кроме того, когда я не использую атрибут Message в моем запросе, он работает нормально.
Затем я попытался добавить метод WithAuthority () с tenantId. Таким образом, строка стала такой.
string tenantId = <Tenant Id>
var app = PublicClientApplicationBuilder.Create(clientId)
.WithAuthority(AzureCloudInstance.AzurePublic, tenantId)
.WithRedirectUri(redirectUri)
.Build();
Затем, как только я позвонил. Результат дал мне другую ошибку.
Код: OrganisationFromTenantGuidNotFound
Сообщение: арендатор для руководства арендатора "Идентификатор клиента "не существует
Но это также работает, когда я не помещаю атрибут сообщения. Поэтому мне интересно, как я могу использовать атрибут «Сообщение», чтобы читать мои сообщения, спасибо.