我试图让我的文件在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
});
}
当我直接通过文件查询/获取dev.google API时,我就会回复该文件:
{
"name": "US",
"appProperties": {
"order": "1"
}
}
有什么想法吗?
谢谢!
答案 0 :(得分:1)
在我的环境中,我确认可以使用googleapis的appProperties
和files.list
以及v29.0.0来检索files.get
。我想到了你的情况可能性。那么你可以确认以下几点吗?
当我阅读Custom File Properties的文件时,它说如下。
使用属性(对所有应用程序可见)和文件上的appProperties(仅限于单个应用程序)字段访问属性
我对此进行了调查。作为示例,它假设{"key1": "value1"}
由{strong> client_id_A 写入appProperties
和properties
。
appProperties
,当读取appProperties
时,只有与appProperties
写入时使用的客户端ID相同的客户端ID才能读取它。
appProperties
。properties
,当读取properties
时,可以通过各种客户端ID读取它。
properties
。根据这些结果,appProperties
和properties
可分别用作“私人”和“公开”。
使用此功能,您可以再次确认您的情况吗?如果您将使用node.js编写appProperties
,则可以使用以下脚本。这样,您可以确认您可以使用相同的客户端ID编写和读取appProperties
。
drive.files.update({
fileId: "### file ID ###",
resource: {"appProperties": {"key": "value"}},
fields: 'id,appProperties',
});
如果这对你的情况没用,我很抱歉。