Google Picker не показывает общий диск - PullRequest
0 голосов
/ 30 апреля 2020

Я использую 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)

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

1 Ответ

2 голосов
/ 30 апреля 2020

Если вы отлаживаете объект view, используемый в версии 1.0 API выбора, вы увидите, что метод 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 выбора

Руководство по быстрому запуску API выбора

...