如何在 Drive API v3 中获取 permissionId?

gak*_*aku 5 google-drive-api

我想从文件中删除权限。

在 Drive API v2 中,

PermissionId permissionId = service.permissions().getIdForEmail(account).execute();
service.permissions().delete(fileId, permissionId.getId()).execute();
Run Code Online (Sandbox Code Playgroud)

但根据文件,permissions().getIdForEmail(String email)被删除和替代是什么。

https://developers.google.com/drive/v3/web/migration

permissionId在 drive API v3 中找不到如何从特定的电子邮件地址获取信息。

你有什么主意吗?

Eri*_*orn 1

两年后,但你的问题是我在寻找解决方案时发现的第一个结果。我找到了一个解决方法,希望这能帮助其他人解决同样的问题。这就是我为获取权限 id 所做的操作:

this.getPermissionId = function(emailAddress) {
    return new Promise((resolve, reject) => {

      const input = {
        q:  '"' + emailAddress + '" in writers or "' + emailAddress + '" in readers',
        fields: 'files(permissions)',
        pageSize: 1
      };

      const request = gapi.client.drive.files.list(input);

      request.execute(result => {
        if(result.error) {
          reject(result.error);
        } else if(result.files && result.files[0] && result.files[0].permissions && result.files[0].permissions[0]) {
          const permissions = result.files[0].permissions;
          let permissionId;
          permissions.forEach(permission => {
            if(permission.emailAddress == emailAddress) {
              permissionId = permission.id;
            }
          });

          if(permissionId) {
            resolve(permissionId);
          }

          else {
            reject('permissionIdUndefined');
          }
        }
      });


    })
  };
Run Code Online (Sandbox Code Playgroud)