Microsoft graph api $expand=权限失败,出现notSupported错误

Microsoft graph api $expand=权限失败,出现notSupported错误,microsoft-graph-api,onedrive,Microsoft Graph Api,Onedrive,明确说明此端点支持$expand修改搜索结果: users/{user-id}/drive/root/search(q='{search-text}')?$expand=permissions 但请求在其响应中返回以下主体: { “错误”:{ “代码”:“不受支持”, “消息”:“系统不支持该请求。”, “内部错误”:{ “请求id”:“30fc9988-6f4f-46ba-a5b4-91b150c4a1a5”, “日期”:“2017-11-17T02:30:49” } } } 其他关系也

明确说明此端点支持
$expand
修改搜索结果:

users/{user-id}/drive/root/search(q='{search-text}')?$expand=permissions 
但请求在其响应中返回以下主体:

{
“错误”:{
“代码”:“不受支持”,
“消息”:“系统不支持该请求。”,
“内部错误”:{
“请求id”:“30fc9988-6f4f-46ba-a5b4-91b150c4a1a5”,
“日期”:“2017-11-17T02:30:49”
}
}
}
其他关系也是如此。尽管尝试展开
createdByUser
会导致
BadRequest

我们希望执行此请求以避免执行后续请求。因为目前我们使用SharePoint
ListItemUniqueId
(由于向后可比性)来查找相应的
DriveItem
。然后我们要检索此
DriveItem
的权限。但现在我们需要做两件事来实现这一目标

我们也不能使用
/users/{user id}/drive/items
,因为它不支持
$filter


我们是否误解了文档,或者这是Microsoft Graph方面的问题?

您无法扩展
权限
集合。从:

DriveItem
的权限关系不能作为获取
DriveItem
DriveItems
集合的调用的一部分进行扩展。您必须直接访问权限属性

之所以
$expand=createdByUser
返回一个
BadRequest
,是因为默认情况下它已经展开了

不受支持的属性位于
/search
端点上的
$expand
中,它们是:

  • children
    -由于
    /search
    返回文件,这在逻辑上没有任何意义

  • lastModifiedByUser
    -默认包括

  • content
    -从逻辑上讲,将每个文件的内容包含在
    DriveItems的集合中是没有意义的


但是缩略图可以扩展(
$expand=Thumbnails
)。

非常感谢Marc。我只是在文档中找到它,想编辑问题或自己提供答案^^。但为什么不能扩大呢?因为跨越服务边界?如果是,将涉及哪些服务?据我所知,OneDrive for Business实际上是SharePoint的一部分,它还继承了其默认权限角色。我不是100%了解原因,但我相信这与
search()
返回多个方面类型有关。由于每个方面使用不同的权限实体,因此最终每个元素都包含不同类型的属性。例如,与您共享的远程文件显示的权限对象与您自己驱动器中的文件不同。