Использование Google Picker для загрузки файлов на Google Диск и помещения в определенную папку

Я пытаюсь использовать Google Picker для загрузки файлов в определенную папку на Google Диске. Все работает нормально, когда я просто загружаю в корневую папку, но даже после указания родительской папки, как показано в моем коде ниже, файлы все равно попадают в корневую папку, а не в папку, которую я указываю. Я уверен, что идентификатор папки правильный, так как я использую тот же идентификатор в другом месте для создания тканей в своем приложении GAE и размещения их во вложенных папках. Мой код ниже:

    function createPicker() {
            // Create a view to search images.
            var view = new google.picker.View(google.picker.ViewId.DOCS);
            view.setMimeTypes('image/png,image/jpeg');

            // Use DocsUploadView to upload documents to Google Drive.
            var uploadView = new google.picker.DocsUploadView().setParent('THE Parent folder ID');

            var picker = new google.picker.PickerBuilder().
                addView(view).
                addView(uploadView).
                setAppId("pressomatic").
                setCallback(pickerCallback).
                build();
            picker.setVisible(true);
        }

person user1501783    schedule 27.07.2012    source источник
comment
Я предполагаю, что родитель работает только для просмотра, а не для загрузки, и это может показаться ошибкой.   -  person Ali Afshar    schedule 30.07.2012
comment
Али, вас может заинтересовать следующий обходной путь, который я нашел в другом месте для другой проблемы, которая также устраняет мою проблему. Возможно, это даже было предложено вами, но я не могу найти исходный пост. stackoverflow.com/a/11680890/1501783   -  person user1501783    schedule 31.07.2012


Ответы (2)


Вы должны добавить:

enableFeature(google.picker.Feature.MULTISELECT_ENABLED)

В вашем случае это становится:

    var picker = new google.picker.PickerBuilder().
            enableFeature(google.picker.Feature.MULTISELECT_ENABLED).
            addView(view).
            addView(uploadView).
            setAppId("pressomatic").
            setCallback(pickerCallback).
            build();
        picker.setVisible(true);
    }
person damko    schedule 18.07.2013

Эта ошибка описана на форуме API Picker: https://groups.google.com/forum/#!topic/Google-Picker-API/xaHcET7JYLw

Вы должны добавить:

.enableFeature(google.picker.Feature.MULTISELECT_ENABLED)

В вашем случае это становится:

var picker = new google.picker.PickerBuilder()
        .enableFeature(google.picker.Feature.MULTISELECT_ENABLED)
        .addView(view)
        .addView(uploadView)
        .setAppId("pressomatic")
        .setCallback(pickerCallback)
        .build();

Надеюсь это поможет.

person James Krimm    schedule 02.06.2014