【问题标题】:Google Drive Picker API - Show folders and certain mime types filesGoogle Drive Picker API - 显示文件夹和某些 mime 类型文件
【发布时间】:2019-12-11 21:18:12
【问题描述】:

我已设置 Google Picker API 仅显示图像和 .pdf 文件,但我想设置此显示文件夹,我尝试了以下代码:

function loadPicker() {
      gapi.load('auth', {'callback': onAuthApiLoad});
      gapi.load('picker', {'callback': onPickerApiLoad});
    }

    function onAuthApiLoad() {
      window.gapi.auth.authorize(
          {
            'client_id': clientId,
            'scope': scope,
            'immediate': false
          },
          handleAuthResult);
    }

    function onPickerApiLoad() {
      pickerApiLoaded = true;
      createPicker();
    }

    function handleAuthResult(authResult) {
      if (authResult && !authResult.error) {
        oauthToken = authResult.access_token;
        createPicker();
      }
    }

    function createPicker() {
          if (pickerApiLoaded && oauthToken) {
            //var view = new google.picker.View(google.picker.ViewId.DOCS); ... the mime type filter works only with DOCS
            var view = new google.picker.DocsView(google.picker.ViewId.FOLDERS);
            view.setMimeTypes("application/pdf,image/png,image/jpeg,image/jpg,application/vnd.ms-excel");

            var picker = new google.picker.PickerBuilder()
                .enableFeature(google.picker.Feature.NAV_HIDDEN)
                .enableFeature(google.picker.Feature.SUPPORT_DRIVES)
                .addView(view)
                .setAppId(appId)
                .setOAuthToken(oauthToken)
                .setDeveloperKey(developerKey)
                .setCallback(pickerCallback)
                .build();
            picker.setVisible(true);
          }
        }

使用此代码,Picker 可以工作,问题是每个文件夹内都显示所有类型的文件(Google docs 文件、zip、js 等)

这些是使用的范围:

var scope = [
        'https://www.googleapis.com/auth/drive.file',
        'https://www.googleapis.com/auth/drive',
        'https://www.googleapis.com/auth/drive.metadata',
        'https://www.googleapis.com/auth/drive.readonly'
    ];

我可以在 Google Picker API 中显示文件夹,并且在其中只显示我在 setMimeTypes() 过滤器中设置的文件吗?

【问题讨论】:

  • 你应该用语言标记这个

标签: javascript google-drive-api google-picker


【解决方案1】:

您可能需要将.setIncludeFolders(true) 添加到您的视图中。例如:

    var viewPdf = new google.picker.DocsView(google.picker.ViewId.PDFS).setIncludeFolders(true);
    var viewPresentation = new google.picker.DocsView(google.picker.ViewId.PRESENTATIONS).setIncludeFolders(true);
    var picker = new google.picker.PickerBuilder().
            addView(viewPdf).
            addView(viewPresentation).
            setOAuthToken(oauthToken).
            setDeveloperKey(developerKey).
            setCallback(pickerCallback).
            build();
        picker.setVisible(true);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-06
    • 2012-08-07
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多