如何在 Dart 中设置 Google Drive GoogleAPIs v3 中的“fields”参数?

Mar*_*ary 5 field google-api dart google-drive-api

我正在尝试从 Dart 的Google Drive API v3返回一组特定的文件资源字段。根据指定,常规 list() 调用仅返回 4 个参数,但如果我传入字段的查询参数(例如fields='starred,webContentLink'),我可以返回有关文件的其他信息。同样,传入fields='*'会返回整个文件资源。这在文档的“尝试此 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');
Run Code Online (Sandbox Code Playgroud)

我进入了实际的 v3 代码并手动更改_queryParams["fields"]starred,但这也不起作用(*有效)。我什至尝试'starred'使用额外的引号以防万一,但这导致了相同的错误(DetailedApiRequestError(status: 400, message: Invalid field selection 'starred')

我有什么明显遗漏的东西吗?

Tan*_*ike 5

下面的修改怎么样?

从 :

$fields: 'starred'
Run Code Online (Sandbox Code Playgroud)

到 :

$fields: 'files/starred'
Run Code Online (Sandbox Code Playgroud)

或者

$fields: 'files%2Fstarred'
Run Code Online (Sandbox Code Playgroud)

如果您想检索带有星号和文件名的列表,您可以使用$fields: 'files(name,starred)'$fields: 'files(name%2Cstarred)'

参考 :

如果这对您没有用,我很抱歉。

  • 这个答案值得一些爱。文档是灾难性的 (2认同)