Для конкретного пользователя список событий Ms Graph возвращает ошибку - PullRequest
0 голосов
/ 15 апреля 2019

Я звоню в MS Graph Rest API с помощью C # SDK. Для большинства пользователей этот код работает нормально. Однако в одном случае я только что получил:

Microsoft.Graph.ServiceException: код: UnknownError.

Как я могу исправить эту проблему или проверить, что на самом деле не так с этим запросом?

Ниже приведен вызов SDK, который я использую для вызова Rest API:

var calendarViewTask = await graphClient.Users[sub.MicrosoftUserId].Calendars[sub.MicrosoftCalendarId]
                .CalendarView.Request(options).Top(200).Filter("type eq 'singleInstance'").Expand($"Extensions($filter=id eq '{GraphHelper.EVENT_EXTENSION_KEY}')").GetAsync();

Ответы [ 2 ]

1 голос
/ 29 апреля 2019

Я проверил разрешения, и они были установлены правильно, это работает для других пользователей. После небольшого расследования я выяснил причину этой проблемы.

У этого пользователя было несколько повторяющихся событий в календаре. Когда я вызывал все события в следующие 100 лет, количество событий было слишком большим, и я получил ошибку 500. Когда меня спросили за 1 год, API вернул все данные, которые я запрашивал.

Я предполагаю, что это каким-то образом связано с базовым API и обработкой событий MS Graph перед возвратом данных.

Проблема исправлена ​​

0 голосов
/ 17 апреля 2019

Вы пробовали устанавливать разрешения в Azure AD. Если нет, попробуйте приведенное ниже решение и посмотрите, поможет ли это.

Разрешения, которые необходимо предоставить приложению в Azure AD.

Приложение Azure, зарегистрированное в Azure AD, должно предоставлять следующие разрешения в Microsoft Graph API: enter image description here

Нужно иметь в виду, что вы не можете выдать себя за зарегистрированного пользователя, вы должны использовать секрет клиента.

Также вы можете просмотреть следующую статью, чтобы понять, как найти правильные разрешения для API Azure Graph. Разрешения для вызова графа Microsoft или Azure Active Directory

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...