我正在尝试在OneDrive中找到特定文件的位置。
我正在使用/ search REST API执行此操作。
如果我搜索文件名并且文件存在于三个位置,我会得到结果中所有三个文件的parent_id,即使其中一个位置是根目录。
如果我随后在根目录的parent_id上查询文件数据,我会得到404。
对于根目录中的文件,parent_id不应为null吗?
有没有办法知道将作为404返回的路径ID对应于根目录?
答案 0 :(得分:2)
在应用启动时,请执行以下查询:
https://apis.live.net/v5.0/me/skydrive
这将返回一个关于根文件夹的小json blob,包括它的“id”成员。根目录中的所有文件都应具有parent_id的相同ID。我的例子:
GET https://apis.live.net/v5.0/me/skydrive
200 OK
{
"id": "folder.1234567812345678",
...
"name": "SkyDrive",
"description": "",
"parent_id": null,
"size": 17656182301,
"upload_location": "https://apis.live.net/v5.0/folder.1234567812345678/files/",
...
}
这就是你如何检测根文件夹的ID。根文件夹有一个id,但它的parent_id当然是 null 。
如果我随后在根目录的parent_id上查询文件数据,我会得到404。
如果我调用它,那很奇怪:
GET https://apis.live.net/v5.0/folder.1234567812345678/files
我得到的结果与我查询/me/skydrive/files
我怀疑您的网址格式错误。当您调用返回404的调用时,URL会是什么样子?