我有一个将MS graph API用于onedrive的应用程序。 当我尝试将文件从某个文件夹移动到驱动器的根目录时,出现错误“提供的参数之一不可接受”。
但是相同的代码对于“单个” onedrive帐户也可以正常工作,问题仅适用于企业帐户的OneDrive。 另外,移至任何其他文件夹也可以。
我正在发送PATCH请求或移动文件。
免费提供一个驱动器,请求正文看起来像
(
[parentReference] =>
(
[path] => //drives/68XXXXX7f7f7d7c/root
)
)
这有效。但是oneDrive for business的相同代码失败
(
[parentReference] =>
(
[path] => //drives/b!-0dIs3JX..TRUNCATED...0_oR2A...L0PY/root
)
)
这将导致错误“提供的参数之一是不可接受的”
这可能是什么?有任何想法吗? 我在这里https://docs.microsoft.com/en-us/graph/api/driveitem-move?view=graph-rest-1.0
遵循文档答案 0 :(得分:1)
documentation中记录了此问题:
注意:将项目移动到驱动器的根目录时,您的应用程序无法使用
"id:" "root"
语法。您的应用程序需要提供根文件夹的实际ID供父级引用。
要检索实际ID,您需要从id
对象中检索root
:
/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