我正在尝试从Dart的Google Drive API v3返回文件资源的一组特定字段。作为specified,常规list()调用仅返回4个参数,但是如果我传入字段的查询参数(例如fields='starred,webContentLink'
),则可以返回有关File的其他信息。同样,传入fields='*'
将返回整个File资源。在文档的“尝试使用此API”部分中,这可以正常工作。
现在,使用Dart软件包,可以设置$fields: '*'
起作用,但是设置$fields: 'starred'
会导致以下错误:DetailedApiRequestError(status: 400, message: Invalid field selection starred)
。
// Assume I have successfully created an API client
g_drive.DriveApi api = new g_drive.DriveApi(client);
// This works
g_drive.FileList fileList = await api.files.list($fields: '*');
// This returns the 400 error
g_drive.FileList fileList = await api.files.list($fields: 'starred');
我进入actual v3 code并手动将
_queryParams["fields"]
更改为starred
,但这也不起作用(*
有效)。为了防止万一,我什至尝试用额外的引号对'starred'
进行操作,但这导致了相同的错误(DetailedApiRequestError(status: 400, message: Invalid field selection 'starred')
)有什么明显的我想念的东西吗?
最佳答案
接下来的修改如何?
来自:
$fields: 'starred'
至 :
$fields: 'files/starred'
要么
$fields: 'files%2Fstarred'
如果要检索带有星号和文件名的列表,则可以使用
$fields: 'files(name,starred)'
或$fields: 'files(name%2Cstarred)'
。引用:
如果这对您没有用,对不起。