0

Я пытаюсь определить владельца длинного списка (почти 1000 элементов) документов на Google Диске. Владельцы могут варьироваться между документами. У меня есть уникальный идентификатор документа для каждого элемента.Возвращает владельца документа для большого количества идентификаторов документов Google Диска

Я администратор Google Apps в своем домене и имею утилиту, которая позволяет мне пробивать идентификатор документа и видеть право собственности на этот конкретный элемент. Однако, я должен сделать это через веб-интерфейс, по одному за раз.

Есть ли способ использовать API Google, скажем, в электронной таблице, который может вернуть владельца документа при предоставлении идентификатора документа? Или, возможно, сценарии Google?

ответ

0

Работала с моим коллегой, чтобы создать следующий скрипт Google Apps, который отлично работает.

Использование: со списком идентификаторов doc в столбце D выделите строки, которые вы хотите проверить (любые ячейки в порядке, просто выделите что-то выделенное в нужных строках) и выполните с помощью пользовательского меню «Автоматизация».

Результат: Владелец затем возвращается в колонке Е.

function getOwnerFromValue(val){ 
    var doc = DriveApp.getFileById(val); 
    var user = doc.getOwner(); 
    return user; 
} 


function scanRange() { 
var range = SpreadsheetApp.getActiveRange(); 
    var start = range.getRow(); 
    var stop = range.getLastRow(); 
    var range = SpreadsheetApp.getActive().getRange("D"+start+":D"+stop) 
    var resultRange = SpreadsheetApp.getActive().getRange("E"+start+":E"+stop); 
    var result = []; 
    range.getValues().forEach(function(obj){ 
    obj = obj[0]; 
    if(obj.trim() != "") 
     result.push([getOwnerFromValue(obj).getEmail()]); 
    }); 
    resultRange.setValues(result); 
} 

function onOpen(){ 
    var sheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var entries = [{ 
    name : "Get Owners' User", 
    functionName : "scanRange" 
    }]; 
    sheet.addMenu("Automation",entries); 
} 


function onAdd(e){ 
    var editted = e.range; 
    if(editted.getRow() != 1 && editted.getColumn() == 4) { 
    Logger.log(getOwnerFromValue(editted.getValue())); 
    } 
} 
0

Это можно сделать в скрипте приложений.

Class File

файл в Google Drive. Доступ к файлам возможен или создается с DriveApp.

Пример кода

var files = DriveApp.getId('DOC_ID'); 
while (files.hasNext()) { 
var file = files.next(); 

var owner = file.getOwner() 

} 

getOwner()

Получает владельца File.

Вернуться

User - это объект, представляющего User владельцу

Надеется, что это помогает.