我尝试实施O365统一api(测试版)。我成功地获得了所有组,但是在尝试获取特定组的文件时遇到了问题。
错误消息是" UnAuthorized(401)" 。
当我签入fiddler时,它会在webview中从服务器返回错误。
我已经授予了权限(阅读所有网站集 ,所有组,所有文件),仍然无法正常访问文件。
如果有人知道如何解决这个问题,请帮助我。
答案 0 :(得分:0)
首先,让我们确保使用正确的方法:
根据https://msdn.microsoft.com/en-us/office/office365/howto/groups-rest-operations的文档,确保您使用的是此方法:
列出所有文件和文件夹 获取组中所有直接文件和文件夹的列表。 必需范围:Group.Read.All
GET https://graph.microsoft.com/{version}/{tenant}/groups('{groupId}')/files
<强> 响应 强> 如果成功,则返回组中文件和文件夹的子集合。请注意,这不会返回组中直接文件夹的子项。
示例请求
GET https://graph.microsoft.com/beta/contoso.com/groups('c75831bd-fad3-4191-9a66-280a48528679')/files
其次,让我们排除API预览/测试模式的一些特性:
请针对您的测试方案https://msdn.microsoft.com/en-us/office/office365/howto/office-365-rest-api-release-notes查看并验证以下3个警告:
创建后无法立即访问内容
可以通过组上的POST立即创建统一组 实体。但是,对于通过该创建的统一组 统一的API,访问相关内容将不容易 可用。应用程序将能够开始向该组添加内容 (一段时间后的文件,对话和事件),如 如下:
For conversations and events, up to 40 minutes after group creation For files, up to 24 hours after group creation
在此之前,尝试使用内容更新统一组 将导致500 HTTP错误响应。用于概念验证 我们建议使用Office 365统一API的应用程序 您使用Outlook或Outlook Web App创建统一组if 需要立即访问内容。
<强>政策强>
使用Office 365统一API创建和命名统一组 绕过通过配置的任何统一组策略 Outlook Web App。对于使用Office的概念验证应用程序 365统一API,我们建议您使用Outlook或Outlook Web App 创建统一的小组。
权限范围
Office 365统一API公开了统一的两个权限范围 基团:
Group.Read.All Group.ReadWrite.All
这些范围提供对组管理功能的访问(枚举 组,枚举组成员)以及访问内容 小组(对话和活动)。但是,为了访问文件 一个统一的组,您还必须请求Sites.Read.All或 Site.ReadWrite.All权限范围。有关这些的更多信息 权限范围,请参阅Office 365统一API入门 (预览)。
最后,检查您要查询的群组是否有任何不同 如果您在图表资源管理器中查看该组,您是否看到它与测试租赁之外和之外的组之间的组元数据有任何差异?可能有吸烟枪属性突出。
答案 1 :(得分:0)
最有可能的原因是,您没有Site.Read.All权限,这是访问组文件的临时要求。