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

时间:2017-11-07 02:14:42

标签: google-api google-drive-api dart field

我正在尝试从Google Drive API,v3为Dart返回文件资源的一组特定字段。作为specified,常规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');

我进入actual v3 code并手动将_queryParams["fields"]更改为starred,但这也无效(*有效)。为了以防万一,我甚至尝试使用额外的引号'starred',但这导致了相同的错误(DetailedApiRequestError(status: 400, message: Invalid field selection 'starred')

有什么明显的东西我不见了吗?

1 个答案:

答案 0 :(得分:2)

以下修改怎么样?

来自:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:msxsl="urn:schemas-microsoft-com:xslt"
  xmlns:user="urn:my-scripts">
  <msxsl:script language="C#" implements-prefix="user">
  <![CDATA[
  public string getguid(){
     return Guid.NewGuid().ToString();
  }
  ]]>
  </msxsl:script>
  <xsl:template match="data">
    <Guid><xsl:value-of select="user:getguid()"/></Guid>
  </xsl:template>
</xsl:stylesheet>

致:

$fields: 'starred'

$fields: 'files/starred'

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

参考:

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