尝试使用适用于Java的驱动器API v3和服务帐户向TeamDrive中的文件添加属性

尝试使用适用于Java的驱动器API v3和服务帐户向TeamDrive中的文件添加属性,java,google-drive-api,Java,Google Drive Api,我正在尝试使用驱动器API和服务帐户向已上载到TeamDrive的文件添加属性。我可以访问这些文件,但当我尝试将属性映射添加到文件对象和update()时,会出现403错误 ... Drive.Files.List request = service.files() .list() .setIncludeTeamDriveItems(true) .setCorpora("teamDrive") .setSupportsTeamDrives(true) .

我正在尝试使用驱动器API和服务帐户向已上载到TeamDrive的文件添加属性。我可以访问这些文件,但当我尝试将属性映射添加到文件对象和update()时,会出现403错误

...

Drive.Files.List request = service.files()
    .list()
    .setIncludeTeamDriveItems(true)
    .setCorpora("teamDrive")
    .setSupportsTeamDrives(true)
    .setTeamDriveId("MAZEPX3fk38ieDu9PVL")
    .setQ("name contains 'aad081cc-0929-42bf-88f9-cb43c5ed0742'");

FileList files = request.execute();
File f = files.getFiles().get(0);
Map<String, String> props = new HashMap<>();
props.put("fancyTag", "this_is_my_tag_value");
f.setProperties(props);
service.files().update(f.getId(),f).execute();

...
服务帐户具有对相关TeamDrive的编辑权限。在v3文档中,它明确表示属性是可写的。所以我想知道我没有设置什么,或者我无意中创建了什么条件来禁止在驱动器文件上设置属性?

下面是一个与您的问题相关的问题

从那里,您将被重新引导到所写的注释

如果你愿意阅读,答案中有这一部分:

垃圾/更新


我在这件事上浪费了一些时间你是我的英雄。完全正确
{
    "code" : 403,
    "errors" : [ {
    "domain" : "global",
        "message" : "The resource body includes fields which are not directly writable.",
        "reason" : "fieldNotWritable"
    } ],
    "message" : "The resource body includes fields which are not directly writable."
}