2015-10-14 84 views
1

我已成功使用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请求?我在文档中看不到任何内容,但即使是这样,我也会期待未经授权的响应而不是内部服务器错误。

任何想法非常感谢!

回答

0

对不起,这个问题。所以我相信,我们意外地推动了一项变革,并且在我们恢复变更之前设法实现了这一目标。我们正在通过OneDrive API更新对文件的访问权限,这将导致重大更改。您可以阅读更多内容,以及我们计划在10/19更新的/ beta端点上的突破,这里是:http://dev.office.com/blogs/Update-2-on-Office-365-unified-API。更新之后,访问文件要求的语法如下: https://graph.microsoft.com/stagingBeta/microsoft.com/groups/groupId/drive/root/children

注意:我们需要生成此新的客户端库。您正在使用的那个将与此更新断开。我们希望在此服务更新后很快就能获得新的客户端库。

现在我不确定这是不是你偶然发现的,或者这是不同的问题。你可以再试一次吗(在我们在10月19日12点PDT进行更新之前)?

希望这有助于,

+0

我认为这绝对是问题,谢谢丹。任何有关更新客户端库的消息?就目前而言,我们不能继续我们的开发,直到发布新的库(如果新库即将可用,没有意义手动创建所有其他调用并解析响应)。谢谢。 – Paul

相关问题