Я работаю над веб-частью SPFX с ReactJS, которая выполняет некоторые сервисные вызовы MS Graph API REST для отображения пользовательских данных: отображаемого имени пользователя, почты пользователя, событий календаря пользователя и команд пользователя.Тем не менее, только вызов службы информации пользователя («/ me» в Graph) извлекает данные ... Другие вызовы показывают ошибку: «ResourceNotFound - Ресурс не может быть обнаружен», несмотря на то, что тот же вызов службы работает правильно, если я сделаю это с Graph Explorer.
В случае получения электронной почты ("/ me / messages") я тестирую пользователя, у которого есть учетная запись почты Office365 Exchange, но у него нет роли администратора в SP Tenant.Моя веб-часть имеет разрешения «Mail.Read» и «Mail.ReadWrite» (и другие, например, «User.Read.All» для чтения команд пользователя).Я тестирую в SP Workbench и развертываю свою веб-часть на странице в клиенте SP, утверждая все ожидающие разрешения в webApiPermissionManagement, но все еще не работает :(
Кроме того, на портале Azure моя веб-часть показывает, что она имеетделегированное разрешение «Чтение почты пользователя». Я не знаю, пропустил ли я здесь какую-либо конфигурацию, но я думаю, что я утвердил каждое разрешение, которое мог, с другим пользователем, имеющим роль администратора ...
Итак, яу меня два пользователя из разных организаций: у одного есть почтовый сервер Exchange O365 с разрешениями на сайте SP, но нет роли администратора, а другой - владелец SP Tenant, но не обменивающийся почтой (я не тестирую веб-часть с этим пользователем).
В моем коде вызов службы для получения списка почты:
this.props.context.msGraphClientFactory.getClient().then(
function(client: MSGraphClient) {
client
.api("me/messages")
.version("v1.0")
.select("receivedDateTime,from,subject")
.filter("isDraft eq false")
.orderby("receivedDateTime DESC")
.get((error, response) => {
if(error) {
console.error(error.message);
return;
}
MailHelper.GetMailsFromResponse(response); //Custom helper in order to format successful response
});
}
);
(я видел, как позвонить клиенту Graph здесь: https://docs.microsoft.com/en-us/sharepoint/dev/spfx/use-msgraph#use-the-msgraphclient-in-your-solution)
Как я уже говорил,когда я звоню в сервисный вызов «/ me / messages», я получаю сообщение об ошибке 404: «ResourceNotFound - Ресурс не может быть обнаружен» вместо списка писем ... но если использовать Graph Explorer,это работает отлично.Я думаю, что я мог пропустить некоторые настройки разрешений, но я не знаю, какая именно.Я пробовал с различными учебными пособиями Microsoft по поводу подключения Graph и SPFX, но ни один не работает для меня.Любая идея?Я немного отчаялся.