Google drive api googleapis“;appProperties“;未为节点中的文件返回字段

Google drive api googleapis“;appProperties“;未为节点中的文件返回字段,google-drive-api,google-api-nodejs-client,Google Drive Api,Google Api Nodejs Client,我正在尝试获取要与我在gdrive上的文件一起返回的appProperties字段,但当前无法使其正常工作 "googleapis": "^29.0.0" 以下是我的作用域和字段: scopes: [ "https://www.googleapis.com/auth/drive", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive.metadata.r

我正在尝试获取要与我在gdrive上的文件一起返回的
appProperties
字段,但当前无法使其正常工作

"googleapis": "^29.0.0"
以下是我的作用域和字段:

scopes: [
    "https://www.googleapis.com/auth/drive",
    "https://www.googleapis.com/auth/drive.file",
    "https://www.googleapis.com/auth/drive.metadata.readonly"
  ]

fields = ["id", "name", "mimeType", "parents", "description", "modifiedTime", "appProperties"]
所有其他属性都使用
drive.files.list返回,但不会返回
appProperties
字段

 getFilesByQuery: function( queryString , extraFields ){

    var fields = ["id", "name", "mimeType", "parents", "description", "modifiedTime", "appProperties"];
    if( extraFields && extraFields.length )
      fields = fields.concat( extraFields );

    return drive.files.list({
      'pageSize': 200,
      'fields': `nextPageToken, files(${ fields.join(', ') })`,
      'q': queryString
    });
  }
当我直接通过files/get on dev.google API进行查询时,我得到的是该文件:

{
 "name": "US",
 "appProperties": {
  "order": "1"
 }
}
有什么想法吗


谢谢

在我的环境中,我确认可以使用
文件检索
appProperties
。列出
文件。使用v29.0.0获取googleapis的
。我想了一下你处境的可能原因。那么你能确认以下几点吗

当我读到的文件,它说如下

使用文件上的Properties(对所有应用可见)和appProperties(仅限于单个应用)字段访问属性

我对此进行了调查。作为一个示例,它假设
{“key1”:“value1”}
是由客户端id\u a写入
appProperties
properties

  • 对于
    appProperties
    ,当读取
    appProperties
    时,只有与写入
    appProperties
    时使用的客户端ID相同的客户端ID才能读取它。
    • 也就是说,当使用从客户端id\u B检索到的访问令牌时,它无法读取客户端id\u A写入的
      appProperties
  • 对于
    属性
    ,当读取
    属性
    时,它可以被各种客户端ID读取。
    • 即,即使使用从客户机id\u B检索的访问令牌,它也可以读取客户机id\u A编写的
      属性
根据这些结果,
appProperties
properties
可以分别用作“私有”和“公共”

用这个,你能再次确认你的情况吗?如果要使用node.js编写
appProperties
,可以使用以下脚本。通过此操作,您可以确认您可以使用相同的客户端ID写入和读取
appProperties

drive.files.update({
  fileId: "### file ID ###",
  resource: {"appProperties": {"key": "value"}},
  fields: 'id,appProperties',
});

如果这对您的情况没有帮助,我很抱歉。

我们可以问您关于使用您问题的
字段调用驱动API的脚本吗?@Tanaike已更新以澄清问题!谢谢你的回复。您使用的是什么版本的googleapis?因为带有v25.0.0-v30.0.0的googleapis有一些bug,我为您的情况担心。V:“^29.0.0”,对此有何建议?我应该降级到24.0吗?对不起。在我目前的环境中,我无法尝试。但我认为值得一试,这绝对是问题所在。非常感谢你抽出时间来帮助我!你真棒@欢迎光临。我很高兴你的问题解决了。我也可以从你的问题中学习。也谢谢你。