我已成功使用Office 365统一API将我的多租户SaaS应用程序链接到Office 365并返回统一组的文件。我正在使用ADAL库和Unified API nuget包实现此目的。根据统一API预览版本说明 - Group.Read.All,Group.ReadWrite.All,Sites.Read.All,Sites.ReadWrite.All,我们在Azure AD应用程序中请求了以下许可(其中包括)。我很欣赏ReadWrite使读取不必要,但我们已经添加了两套来尝试和保护我们免受一些可能的预览问题。仅在部分租户中返回500内部服务器错误的Office 365统一api(预览)组文件
现在我们有一个可以阅读他们的组但不能访问该组中的文件的租户。这适用于其他租户。
当我们调试的代码中,我们发现,这条线被扔一个空引用异常:
IPagedCollection<IItem> files = await _client.groups.GetByID(groupId).files.ExecuteAsync()
然后,我们分离出来,检查组正在接收OK,它是:
IGroup group = await _client.groups.GetById(groupId).ExecuteAsync()
因此,我们取得了相同的文件要求使用HTTP客户端这样我们就可以从服务器获取更详细的回应:
https://graph.microsoft.com/beta/myOrganization/groups/[group_id_here]/files
这是返回状态码500 - 内部服务器错误,内容是'对象引用未设置为对象的实例'。不是很有帮助!
我见过一些关于遇到类似问题的人的权限没有正确设置,但在我的情况下,我不明白为什么呼叫检索统一的组文件可以在一个Office 365租户中正常工作,但不是另一个权限是由同一个Azure AD应用程序控制的,因此完全相同。
这些组都是在Office 365 Web App中创建的,而不是通过Unified API创建的,因此这不是一个因素。
管理员可以使用哪些权限限制访问统一api请求?我在文档中看不到任何内容,但即使是这样,我也会期待未经授权的响应而不是内部服务器错误。
任何想法非常感谢!
我认为这绝对是问题,谢谢丹。任何有关更新客户端库的消息?就目前而言,我们不能继续我们的开发,直到发布新的库(如果新库即将可用,没有意义手动创建所有其他调用并解析响应)。谢谢。 – Paul