按修改时间对文件列表进行排序(Google Drive API)


Sorting a list of files by modifiedTime (Google Drive API)

我目前正在制作一个集成了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"
    ]);
}

这允许我正确排序=)