Google Picker не показывает общий диск

Я использую Google Picker в надстройке Google Sheet. Я использую следующий JS для загрузки API.

  <script type="text/javascript" src="https://www.google.com/jsapi"></script>
  <script>google.load("picker", "1.0");</script>

И ниже приведен код, который создает и показывает сборщик. Теперь я хотел показать общие диски также в окне выбора, для чего я добавил view.setEnableDrives(true); и .enableFeature(google.picker.Feature.SUPPORT_DRIVES), и он начал давать сбой после добавления view.setEnableDrives(true);, он отлично работает (без общего диска), если я удалю это линия.

function showSheetPicker(config) {
  var view = new google.picker.DocsView(google.picker.ViewId.SPREADSHEETS);
  view.setParent('root');
  view.setIncludeFolders(true);
  view.setEnableDrives(true); // this line gives error

var picker = new google.picker.PickerBuilder()
    .enableFeature(google.picker.Feature.SUPPORT_DRIVES)
    .addView(docsView)
    .addView(folderView)
    .hideTitleBar()
    .setOAuthToken(config.token)
    .setDeveloperKey(config.developerKey)
    .setCallback(onSheetSelected)
    .setOrigin(google.script.host.origin)
    .setSize(700, 500)
    .build();
picker.setVisible(true);

}

Ниже приведена ошибка, которую я получаю в консоли браузера.

userCodeAppPanel:55 Uncaught TypeError: view.setEnableDrives is not a function
    at showSheetPicker (userCodeAppPanel:55)
    at df (1551822985-mae_html_user_bin_i18n_mae_html_user__en_gb.js:72)
    at 1551822985-mae_html_user_bin_i18n_mae_html_user__en_gb.js:15
    at qg.J (1551822985-mae_html_user_bin_i18n_mae_html_user__en_gb.js:99)
    at Kd (1551822985-mae_html_user_bin_i18n_mae_html_user__en_gb.js:47)
    at Gd (1551822985-mae_html_user_bin_i18n_mae_html_user__en_gb.js:48)
    at Ed.b (1551822985-mae_html_user_bin_i18n_mae_html_user__en_gb.js:44)

Любая помощь в этом будет высоко оценена.


person J J    schedule 30.04.2020    source источник


Ответы (1)


Если вы отлаживаете объект view, используемый в API Picker версии 1.0, вы увидите, что нет доступного метода setEnableDrives(boolean).

Попробуйте загрузить поддерживаемую версию API, чтобы документация была более согласованной. Как вы можете прочитать в руководстве по документации, вы должны загрузить API выбора с помощью этого метода:

<script>
  function loadPicker() {
      gapi.load('picker', {'callback': showSheetPicker});
  }
</script>
<script type="text/javascript" src="https://apis.google.com/js/api.js?onload=loadPicker"></script>

Использованная литература:

Документация по API Picker

Краткое руководство по началу работы с Picker API

person Alessandro    schedule 30.04.2020