Я пытаюсь создать Google Drive Picker, который отображает следующие виды:
Представление «папка», отображающее дерево папок текущего пользователя, позволяющее ему выбирать толькофайлы, которыми владеет текущий пользователь
Представление «последние», отображающее последние открытые файлы, которыми владеет текущий пользователь
A »sharedпредставление «Диски» (примечание: ранее называлось «командные диски»), отображающее общие диски текущего пользователя, к которым он имеет доступ (он не является владельцем файлов, поскольку файлы общих дисков принадлежат платформе G Suite пользователя)
Первая попытка: Feature.MINE_ONLY
с Feature.SUPPORT_DRIVES
Первое, что я попробовал, - включить обе функции MINE_ONLY
и SUPPORT_DRIVES
на PickerBuilder
, однако, это приводит к тому, что представление «общие диски» становится пустым, поскольку пользователь не является владельцем файлов на общих дисках (см. пояснение выше).
Вторая попытка: Features.SUPPORT_DRIVE
+ setOwnedByMe(true)
Второе, что я попробовал, было тo включить только функцию SUPPORT_DRIVES
и использовать метод setOwnedByMe(true)
в «папках» и «последних» представлениях.
Он работает почти так, как ожидалось, НО в представлении «папки» не отображаются папки, посколькуфункция setOwnedByMe
не может быть вызвана вместе с представлением setIncludeFolders
( ссылка ).
Ниже приводится упрощенная версия моего кода для второй попытки (я намеренно не ставилкод аутентификации):
var googlePicker = new google.picker.PickerBuilder();
// KO: DOES NOT DISPLAY THE FOLDERS
var folderView = new google.picker.DocsView().
//setIncludeFolders(true). // -> cannot be used with setOwnedByMe, else it overrides it
setOwnedByMe(true).
setParent('root');
// OK
var recentFilesView = new google.picker.DocsView(google.picker.ViewId.DOCS).
setOwnedByMe(true);
// OK
var sharedDriveview = new google.picker.DocsView().
setIncludeFolders(true).
setSelectFolderEnabled(false).
setEnableDrives(true);
googlePicker.enableFeature(google.picker.Feature.SUPPORT_DRIVES); // previously named SUPPORT_TEAM_DRIVES
//googlePicker.enableFeature(google.picker.Feature.MINE_ONLY); // NOT working properly with setEnableDrives
googlePicker.
addView(folderView).
addView(recentFilesView).
addView(sharedDriveview);
googlePicker.build().setVisible(true);