提问者:小点点

OneDrive。MS Graph API。将文件移动到驱动器的根目录失败,显示“提供的参数之一不可接受”


我有一个为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


共1个答案

匿名用户

此问题已在留档中注明:

注意:当将项目移动到驱动器的根目录时,应用程序不能使用“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