Как сделать миниатюру изображения в палитре Google? - PullRequest
1 голос
/ 08 июля 2020

Я работаю с программой выбора Google.

Но в режиме выбора миниатюра изображения не отображается. Но я хочу показать эскиз в предварительном просмотре. Но я не могу. Я пробую это:

Вот мой код:

<script type="text/javascript">

    var developerKey = "";
    var clientId = "";

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

    var pickerApiLoaded = false;
    var oauthToken;

    // Use the API Loader script to load google.picker and gapi.auth.
    function onApiLoad {
        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.DocsView().setParent('root').setIncludeFolders(true)
            var uploadView = new google.picker.DocsUploadView().setIncludeFolders(true);

            view.setMimeTypes('image/png,image/jpeg,image/jpg');
            uploadView.setMimeTypes('image/png,image/jpeg,image/jpg');

            var picker = new google.picker.PickerBuilder().
                    addView(view).
                    addView(uploadView).
                    setOAuthToken(oauthToken).
                    setDeveloperKey(developerKey).
                    setCallback(pickerCallback).
                    build();
            picker.setVisible(true);
            setTimeout(function () {
                $('.picker-dialog').css('z-index', 10002);
            }, 10);
        }
    }

    function pickerCallback(data) {
        if (data.action == google.picker.Action.PICKED) {
            var fileId = data.docs[0].id;
            alert('You select: ' + fileId);
        }
    }
</script>

Средство выбора модального файла отображается следующим образом:

enter image description here

But I want it like this: введите описание изображения здесь

Пожалуйста, помогите кому-нибудь. Заранее спасибо!

1 Ответ

1 голос
/ 12 июля 2020

Ответ:

Вам необходимо использовать прицел drive.readonly, а не drive.file.

Дополнительная информация:

Согласно информация об авторизации с экрана согласия OAuth, область drive.file позволит вашему приложению:

  • просматривать файлы с Google Диска, которые вы открыли с помощью этого приложения или к которым предоставлен общий доступ публично

  • Сохранение изменений в файлах, которые вы открыли с помощью этого приложения

  • Создание новых файлов на Google Диске с помощью этого приложения

  • Просмотр папок и их содержимого с Google Диска, которые вы открыли с помощью этого приложения

  • Внесите изменения в папки и их содержимое, которые вы открыли с помощью этого приложения

  • Удалить содержимое папок, которые вы открыли с помощью этого приложения

В то время как область drive.readonly позволяет вашему приложению:

  • Просмотр файлов на Google Диске
  • Скачивание файлов
  • Просматривайте имена и адреса электронной почты людей, с которыми вы делитесь файлами.

Важные отличия заключаются в том, что область действия drive.file ограничивает ваше приложение до файлов с были созданы с помощью или уже были открыты с помощью приложения. Без области действия readonly невозможно получить информацию об эскизах.

Примечание. Очевидно, что это изменяет объем того, что может делать ваше приложение, и это будет отражено на экране согласия OAuth, отображаемом для пользователей.

Надеюсь, это будет вам полезно!

...