Я успешно использовал унифицированный API Office 365 для соединения моего многопользовательского приложения SaaS с Office 365 и возврата файлов для унифицированных групп. Я достигаю этого, используя библиотеку ADAL и пакет Unified API nuget. Мы запросили следующие разрешения (среди прочих) в нашем приложении Azure AD в соответствии с примечаниями к выпуску Unified API для предварительного просмотра - Group.Read.All, Group.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All. Я ценю, что ReadWrite делает чтение излишним, но мы добавили оба набора, чтобы попытаться защитить себя от некоторых возможных проблем предварительного просмотра.Office 365 унифицированных файлов api (предварительный просмотр), возвращающих 500 внутренних ошибок сервера только у некоторых арендаторов
Теперь у нас есть арендатор, который может читать свои группы, но не может получить доступ к файлам в группе. Это хорошо работает у других арендаторов.
Когда мы отлажен код, мы обнаружили, что эта линия метания пустой ссылки исключения:
IPagedCollection<IItem> files = await _client.groups.GetByID(groupId).files.ExecuteAsync()
Затем мы отделили его, чтобы проверить группу было быть получены в порядке, который он:
IGroup group = await _client.groups.GetById(groupId).ExecuteAsync()
поэтому мы сделали те же файлы запроса с помощью HTTP-клиента, так что мы могли бы получить более подробный ответ от сервера:
https://graph.microsoft.com/beta/myOrganization/groups/[group_id_here]/files
Это возвращает код состояния 500 - внутренняя ошибка сервера, а содержимое - «Ссылка на объект, не установленная на экземпляр объекта». Не очень полезно!
Я видел несколько тем о людях, испытывающих подобные проблемы с неправильной настройкой разрешений, но в моем случае я не могу понять, почему вызов для получения унифицированных групповых файлов будет работать нормально в одном офисе 365, но не в другой, когда их привилегии контролируются одним и тем же Azure AD Application и, следовательно, точно такие же.
Группы создаются в веб-приложении Office 365, а не через унифицированный API, что не является фактором.
Существуют ли разрешения в Office 365, которые администраторы могут использовать для ограничения доступа к унифицированным запросам api? Я не вижу ничего в документации, но даже если бы это было так, я ожидал бы неавторизованный ответ вместо внутренней ошибки сервера.
Любые идеи высоко оценены!
Я думаю, что это определенно проблема, спасибо Dan. Любые новости об обновленной клиентской библиотеке? В его нынешнем виде мы не сможем продолжать разработку до выпуска новой библиотеки (не нужно вручную создавать все остальные вызовы и анализировать ответы, если скоро появится новая библиотека). Благодарю. – Paul