我目前正在制作一个集成了Google云端硬盘的网站,并且遇到了问题。API 文档指出,我可以根据modifiedTime
对文件列表进行排序,但是当我尝试发出此请求时,我收到无效的值响应。
调用 GET https://www.googleapis.com/drive/v2/files?q=%270Bxm0A6z2alblOHk1ZEtrcUF0Slk%27+in+parents&orderBy=folder%2CmodifiedTime%2Ctitle&key=HIDDEN 时出错: (400) 无效值
摘自 Google Drive API 文档:
以逗号分隔的排序键列表。有效键包括"createdTime"、"folder"、"modifiedByMeTime"、"modifiedTime"、"name"、"quotaBytesUsed"、"recency"、"sharedWithMeTime"、"starred"和"viewedByMeTime"。默认情况下,每个键都按升序排序,但可以使用"desc"修饰符进行反转。示例用法:?orderBy=folder,modifiedTime desc,name。请注意,对于拥有大约 100 万个文件的用户,当前存在忽略请求的排序顺序的限制。
这是我的查询(PHP):
public function listFiles($folder_id)
{
return $this->drive->files->listFiles([
"q" => "'$folder_id' in parents",
"orderBy" => "folder,modifiedTime,title"
]);
}
如果我从orderBy
值中删除modifiedTime
。查询成功完成。
找到了!看起来像我使用谷歌驱动器SDK的v2并查看v3文档。
在 v3 中,orderBy 查询值从 modifiedDate
更改为 modifiedTime
。
知道这一点后,我将代码更改为:
public function listFiles($folder_id)
{
return $this->drive->files->listFiles([
"q" => "'$folder_id' in parents",
"orderBy" => "folder,modifiedDate desc,title"
]);
}
这允许我正确排序=)