Google Drive API v3无法获取指定字段?实为代码提取错误
问题与修正说明
重要修正
本文所述问题完全是人为失误导致。存在一个嵌套的Python函数,仅从返回的响应中提取files字段,这一点被完全忽略。程序本身运行正常,下方的解决方案是正确的。
在Google Drive API v3中,默认请求:
GET https://www.googleapis.com/drive/v3/files
仅返回包含name、id等少量字段的文档数组。如果将请求修改为:
GET https://www.googleapis.com/drive/v3/files?fields=files 或 GET https://www.googleapis.com/drive/v3/files?fields=files(id,name,createdTime,size)
请求可以正常工作,能获取到大量详细信息。但始终无法找到正确的请求方式,以获取同时包含nextPageToken、incompleteSearch以及files数组的单个响应文档。原本以为:
GET https://www.googleapis.com/drive/v3/files?fields=nextPageToken,files(id,name,createdTime,size)
可以实现,但并未成功。实际上,
GET https://www.googleapis.com/drive/v3/files?fields=nextPageToken
返回的是空数组(但状态码为200)。期望获取的响应格式如下:
{ "nextPageToken": ..., "incompleteSearch": ..., "files": [ {"id": ..., "name": ..., "createdTime": ..., "size": ...}, {"id": ..., "name": ..., "createdTime": ..., "size": ...} ] }
所有请求均通过requests库发送,OAuth2的Bearer Token配置无误。
补充修正
下方的解决方案在使用curl直接通过命令行调用时可正常工作,但在Python程序中使用requests库调用时却无法生效。后续将进一步跟进……
内容的提问来源于stack exchange,提问作者Buzz Moschetti
相关产品推荐
相关产品推荐

