2016-02-25 100 views
3

我想從文件中刪除權限。如何在Drive API v3中獲得permissionId?

驅動器API V2,

PermissionId permissionId = service.permissions().getIdForEmail(account).execute(); 
service.permissions().delete(fileId, permissionId.getId()).execute(); 

但根據文件,權限()。getIdForEmail(字符串email)被刪除,替換什麼。

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

我無法找到如何從驅動器API V3具體EMAILADDRESS得到permissionId。

你有什麼想法?

+0

這是因爲這裏所說的現有問題:https://code.google.com/a/google.com/p/apps-api-issues/問題/細節?ID = 4313。 – abielita

回答

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'); 
      } 
     } 
     }); 


    }) 
    }; 
相關問題