我正在尝试从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)'

引用:
  • https://developers.google.com/drive/v3/reference/files

  • 如果这对您没有用,对不起。

    10-08 09:05