Google Drive 的 權限管理讓我們控制誰可以存取、編輯或分享我們的檔案和資料夾
在 GAS 中, 我們可以透過 DriveApp 類別來管理這些權限!
以下是一些常用的權限管理方法:
getSharingPermission()
function getPermissions() {
var file = DriveApp.getFileById('FILE_ID');
var permission = file.getSharingPermission();
Logger.log('Current sharing permission is: ' + permission);
}
setSharing()
function setPermissions() {
var file = DriveApp.getFileById('FILE_ID');
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
Logger.log('File is now accessible by anyone with the link');
}
addEditor()
function addUserPermission() {
var file = DriveApp.getFileById('FILE_ID');
file.addEditor('user@example.com');
Logger.log('Editor permission granted to user@example.com');
}
removeEditor
function removeUserPermission() {
var file = DriveApp.getFileById('FILE_ID');
file.removeEditor('user@example.com');
Logger.log('Editor permission removed from user@example.com');
}
getEditors()
getViewers()
function getAllPermissionUsers() {
var file = DriveApp.getFileById('FILE_ID');
var editors = file.getEditors();
var viewers = file.getViewers();
Logger.log('Editors:');
for (var i = 0; i < editors.length; i++) {
Logger.log(editors[i].getEmail());
}
Logger.log('Viewers:');
for (var i = 0; i < viewers.length; i++) {
Logger.log(viewers[i].getEmail());
}
}
Google Apps Script 的 DriveApp
類並不提供更換擁有者的功能
因為這項操作涉及更高的權限管理,但能透過 Google Drive 的進階 API(Drive API v2
)來進行。
要更換檔案的擁有者,您可以使用 Drive API v3
,具體步驟如下:
修改 Google Apps Script 設定:
服務
> 進階的Google服務
,啟用 Drive API v2
。使用 Drive API v2 更換擁有者:
function transferOwnership() {
var fileId = 'FILE_ID'; // 要更換擁有者的檔案ID
var newOwnerEmail = 'newowner@example.com'; // 新擁有者的電子郵件
var permissions = Drive.Permissions.insert(
{
'role': 'owner', // 設定為擁有者
'type': 'user',
'value': newOwnerEmail,
'transferOwnership': true // 這個屬性要設為 true,表示移交擁有權
},
fileId,
{
'supportsAllDrives': true // 支援共享網路磁碟
}
);
Logger.log('Ownership transferred to ' + newOwnerEmail);
}
這段程式碼會將檔案的擁有權移交給指定的使用者
如果您沒有適當的權限或嘗試移交給不是同一 Google Workspace 網域的使用者,這項操作可能不會成功唷!
使用GAS管理 Google Drive 權限時, 有幾個重要的注意事項:
學會操作跟權限管理後,那就來實戰演練吧!