Отображать только командные диски в виджете Drive Picker - PullRequest
0 голосов
/ 23 мая 2018

Я создаю приложение, в котором мне нужно предоставить виджет Drive Picker, чтобы пользователи могли загружать некоторые файлы.Теперь я хочу ограничить пользователей, чтобы они могли выбирать файлы только из своих «командных дисков», а не из других источников.

Я пытался добавить метод в событие onPickerInit.

Вот моя функция, которая вызывается в событии onPickerInit,

function fetchFolder(widget, pickerBuilder) {
  pickerBuilder.addView(new google.picker.DocsView()
                       .setParent('TeamDriveId')
                       .setIncludeFolders(true));
}

Этот метод ограничивает пользователей, чтобы выбирать только из определенного Team Drive, однако мой вопрос как я могудать динамическую опцию, чтобы пользователи могли выбирать из любого из своих командных дисков, не ограничиваясь одним Team Drive.Кроме того, они не должны иметь возможность выбирать из своих собственных дисков Google.

1 Ответ

0 голосов
/ 23 мая 2018

Похоже, что этот случай требует низкоуровневой настройки Drive Picker, поэтому давайте начнем с удаления всех настроек, которые App Maker предоставляет нам из коробки:

  1. Удаление всех функций
  2. Удалить все просмотры

Drive Picker settings

Затем добавьте следующий сценарий к событию onPickerInit
// Enable Team Drives
pickerBuilder.enableFeature(google.picker.Feature.SUPPORT_TEAM_DRIVES);

// Let users to select files from any Team Drive
var multiTeamDrive = new google.picker.DocsView();
multiTeamDrive.setIncludeFolders(true)
              .setEnableTeamDrives(true);
pickerBuilder.addView(multiTeamDrive);


// This feature need to be set to force `setParent` work.
// Seems to be Drive Picker's bug
pickerBuilder.enableFeature(google.picker.Feature.MULTISELECT_ENABLED);

// Force users to upload files to a specific Team Drive
var uploadView = new google.picker.DocsUploadView();
uploadView.setParent('Fancy KEY from Team Drive folder URL')
          .setLabel('Upload to Team Drive XXX');
pickerBuilder.addView(uploadView);

Результат Multi Team Drive

Примечания

  • Я не нашел способа скрыть вкладку для загрузки с личного диска.Странно, что App Maker добавляет его по умолчанию, и его невозможно удалить.
  • Я также рекомендую добавить проверку на стороне сервера для файлов, выбранных пользователями, чтобы убедиться, что они происходят из Team Drive.

Аналогичный / связанный ответ: https://stackoverflow.com/a/49677679/454137

...