我有一个为onedrive使用MS graph API的应用程序。当我试图将某个文件从某个文件夹移动到某个驱动器的根目录时,我遇到一个错误“所提供的参数之一不可接受”。
但是相同的代码适用于“个人”Onedrive帐户,问题仅适用于企业帐户的OneDrive。另外,移动到任何其他文件夹都可以正常工作。
我正在发送移动文件的补丁请求。
(
[parentReference] =>
(
[path] => //drives/68XXXXX7f7f7d7c/root
)
)
这是可行的。但oneDrive for business的相同代码失败
(
[parentReference] =>
(
[path] => //drives/b!-0dIs3JX..TRUNCATED...0_oR2A...L0PY/root
)
)
这会导致错误“提供的参数之一不可接受”
这是什么?有什么想法吗?我跟着这里的医生https://learn.microsoft.com/en-us/graph/api/driveitem-move?view=graph-rest-1.0
此问题已在留档中注明:
注意:当将项目移动到驱动器的根目录时,应用程序不能使用“id:”“root”
语法。应用程序需要为父引用提供根文件夹的实际ID。
要检索实际的id,您需要从< code>root对象中检索< code>id:
/drives/{drive-id}/root
这将返回以下内容:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('48d31887-5fad-4d73-a9f5-3c356e68a038')/drive/root/$entity",
"createdDateTime": "2017-07-27T02:41:36Z",
"id": "01BYE5RZ56Y2GOVW7725BZO354PWSELRRZ",
"lastModifiedDateTime": "2019-01-18T03:41:15Z",
"name": "root",
"webUrl": "https://m365x214355-my.sharepoint.com/personal/meganb_m365x214355_onmicrosoft_com/Documents",
"size": 106330475,
"parentReference": {
"driveId": "b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd",
"driveType": "business"
},
"fileSystemInfo": {
"createdDateTime": "2017-07-27T02:41:36Z",
"lastModifiedDateTime": "2019-01-18T03:41:15Z"
},
"folder": {
"childCount": 38
},
"root": {}
}
使用上面的示例,当移动文件时,路径将是:
/drives/b!-RIj2DuyvEyV1T4NlOaMHk8XkS_I8MdFlUCq1BlcjgmhRfAj3-Z8RY2VpuvV_tpd/01BYE5RZ56Y2GOVW7725BZO354PWSELRRZ