Google Drive API v2含createdTime查询报错:无效查询
解决Drive API v2查询createdTime报错的问题
你的问题并非createdTime字段在v2中不可用,而是由两个语法/格式错误导致的查询无效:
字符串换行未转义
你的查询字符串在JavaScript中直接换行却未做转义处理,生成的查询语句包含换行符,Drive API无法识别这种格式的条件。解决方式是将查询语句写成单行,或在换行处添加反斜杠\衔接多行字符串。日期格式不符合RFC 3339标准
Drive API v2要求日期必须严格遵循RFC 3339格式:- 毫秒部分需要三位数字(如
.000而非.00) - 必须包含时区标识(如
Z表示UTC时区)
- 毫秒部分需要三位数字(如
修正后的代码示例
function getFiles(){ // 单行查询语句 let query = "trashed = false and mimeType = 'application/vnd.google-apps.document' and createdTime > '2023-03-22T00:00:00.000Z'"; let files = Drive.Files.list({ useDomainAdminAccess: true, corpora: "drive", driveId: "<drive id here>", includeItemsFromAllDrives: true, supportsAllDrives: true, q: query }); }
如果需要多行书写查询字符串,可使用反斜杠转义换行:
function getFiles(){ let query = "trashed = false and mimeType = 'application/vnd.google-apps.document' and \ createdTime > '2023-03-22T00:00:00.000Z'"; let files = Drive.Files.list({ useDomainAdminAccess: true, corpora: "drive", driveId: "<drive id here>", includeItemsFromAllDrives: true, supportsAllDrives: true, q: query }); }
内容的提问来源于stack exchange,提问作者Paul
相关产品推荐
相关产品推荐

