Как встроить папку Google Диска на сайт

У меня есть папка на Google Диске, которую я хочу встроить на свой веб-сайт. Я не могу найти код для встраивания или что-либо задокументированное в справочных статьях Google Диска.


person Mori    schedule 19.12.2013    source источник
comment
Есть ли способ использовать <embed> для авторазмера контента лучше, чем <iframe>?   -  person Merchako    schedule 09.05.2019


Ответы (4)


Папки Google Диска можно встраивать и отображать в представлениях list и grid:

Посмотреть список

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#list" style="width:100%; height:600px; border:0;"></iframe>


Вид сетки

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>



В. Что такое идентификатор папки (FOLDER-ID) и как его получить?

A: Перейдите на Google Диск >> откройте папку >> посмотрите ее URL-адрес в адресной строке браузера. Например:

URL-адрес папки: https://drive.google.com/drive/folders/0B1iqp0kGPjWsNDg5NWFlZjEtN2IwZC00NmZiLWE3MjktYTE2ZjZjNTZiMDY2

Идентификатор папки:
0B1iqp0kGPjWsNDg5NWFlZjEtN2IwZC00NmZiLWE3MjktYTE2ZjZjNTZiMDY2

Предупреждение о папках, требующих разрешения

Этот метод лучше всего работает для папок с общим доступом. Папки, которые доступны только для определенных учетных записей Google, вызовут проблемы, если вы встроите их таким образом. Во время этого редактирования появляется сообщение «Вам требуется разрешение» с некоторыми кнопками, которые помогут вам «Запросить доступ» или «Переключить учетные записи» (или, возможно, войти в учетную запись Google). Javascript в этих кнопках не работает должным образом внутри IFRAME в Chrome.

Подробнее читайте на https://productforums.google.com/forum/#!msg/drive/GpVgCobPL2Y/_Xt7sMc1WzoJ

person Mori    schedule 19.12.2013
comment
Я только что попробовал это широко. В моих фреймах вообще ничего не отображается. Документы Google всегда казались настолько близкими, чтобы быть намного лучше, чем они есть на самом деле. Вздох. Даже если бы мне пришлось немного заплатить за работающий URL, я бы это рассмотрел. - person James T Snell; 21.02.2014
comment
Это решение работает для меня уже несколько месяцев. Это правда, что вошедший в систему пользователь должен иметь доступ к просмотру папки, которая должна быть указана. - person Victoria; 05.07.2014
comment
Это хорошо работает - есть ли способ получить только URL-адреса? - person Richard Griffiths; 01.02.2015
comment
Это хорошо работает в последних версиях Firefox и Chrome. Незначительная проблема заключается в том, что все ссылки на папки/документы открываются в отдельном окне. Есть ли способ просматривать папки на диске в одном и том же iframe? есть ли способ использовать ‹base target=_parent /›? - person Anuruddha; 12.03.2015
comment
Меня также интересует тот же ответ, что и у @apremalal. Скорее всего, не будет счастливого ответа, поскольку кажется, что GDrive не дает даже кнопки .. (назад к родителю) в представлении, поэтому не было бы возможности вернуться назад. - person iDVB; 16.03.2015
comment
@Doc Раньше я получал пустое IFRAME, когда у меня не было разрешения. Думаю, теперь стало лучше, так как появляется сообщение Вам требуется разрешение. Во встроенном представлении папок также есть несколько кнопок, которые помогут вам Запросить доступ или Изменить учетные записи. К сожалению, эти кнопки не работают внутри IFRAME (по крайней мере, не в той версии Chrome, которую я использую). Если ваш браузер позволяет открывать фрейм на другой вкладке, это можно обойти. Если вам нужно переключить учетные записи, чтобы получить доступ, исходный встроенный доступ не переключится, но вы можете использовать доступ с вкладками. - person Fuhrmanator; 13.01.2016
comment
@Chema Я только что просмотрел предложенное вами редактирование. Похоже, вы потратили на это много времени и усилий, но не просто изменить цель поста, но и в одиночку очень популярный. ИМО, опубликовавший свой собственный ответ, был бы намного лучше в этом случае. - person Siguza; 29.03.2017
comment
@Siguza Подойдет (если я смогу найти это где-нибудь), хотя не могли бы вы уточнить, как именно изменилось намерение с моим редактированием? Насколько я помню, я просто добавил немного о включении домена в URL-адрес и уточнил, в каких ситуациях вы получите пустой фрейм или запрос на разрешение. - person Chema; 31.03.2017
comment
@Chema Это широко обсуждаемая тема, но грубо говоря: рекомендации по редактированию ответов более строгие, чем для вопросов, даже изменение форматирования является деликатная вещь. Ваше редактирование добавило новые примеры, новую информацию и новый раздел руководства - все это, как мы не можем предположить, что автор хотел включить. Я думаю, что такое редактирование было бы хорошо для вики, но ответы в вопросах и ответах на самом деле не таковы. Я не знаю, есть ли на него ссылка на источник, но вы можете увидеть свое редактирование здесь. - person Siguza; 31.03.2017
comment
Спасибо @Siguza! Только благодаря вашим вдумчивым комментариям я понял, что моя правка была отклонена (уведомление было бы неплохо), и что SA на самом деле не вики, а совсем другое животное. Я не буду пытаться изучить психологию этого, хотя теперь я также понимаю, почему слишком часто лучший ответ устарел. Вики-сообщество кажется шагом в правильном направлении, позволяющим получать более быстрые обновления, пусть и небольшие. Еще раз спасибо! - person Chema; 05.04.2017
comment
Если у меня в папке 1000 файлов, то не все отображается. - person Muniain; 12.03.2020
comment
Есть ли способ изменить порядок сортировки? - person pihentagy; 29.04.2020

Встраивание каталога Google Диска в IFRAME

Папки Google Диска можно встраивать и отображать в представлениях list и grid (в которых все, что вы можете сделать, это щелкнуть файл или папку, чтобы открыть их на новой вкладке). Для этого просто замените FOLDER-ID своим собственным в:

Список

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#list" style="width:100%; height:600px; border:0;"></iframe>

или без указания режима, поскольку по умолчанию используется режим списка:

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID" style="width:100%; height:600px; border:0;"></iframe>

Сетка

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>

Получение идентификатора вашей папки

Идентификатор — это хэш (буквенно-цифровая тарабарщина) после folders/ в URL-адресе папки. Вы можете увидеть URL-адрес в адресной строке браузера, когда открываете папку на Диске. Например, в:

https://drive.google.com/drive/folders/0B1iqp0kGPjWsNDg5NWFlZjEtN2IwZC00NmZiLWE3MjktYTE2ZjZjNTZiMDY2 

Идентификатор папки: 0B1iqp0kGPjWsNDg5NWFlZjEtN2IwZC00NmZiLWE3MjktYTE2ZjZjNTZiMDY2.

Папка с доменом G Suite/Google Apps

Если ваша папка является частью домена Google Apps, вы можете добавить домен к URL-адресу, чтобы облегчить проблемы с разрешениями (подробности ниже):

<iframe src="https://drive.google.com/a/MY.DOMAIN.COM/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>

Просто замените MY.DOMAIN.COM и FOLDER-ID на свои.

Предупреждение о папках, требующих разрешения

Этот метод лучше всего работает для папок с общим доступом. Папки, которые используются только определенными учетными записями Google, могут вызвать проблемы при встраивании их таким образом, в зависимости от того, какие учетные записи Google активны в браузере пользователя:

  1. Если пользователь не вошел ни в одну учетную запись Google, то в кадре ничего не появляется.
  2. Если пользователь вошел в учетную запись без авторизации для доступа к папке, фрейм будет содержать сообщение Вам требуется разрешение с некоторыми кнопками Запросить доступ или Переключиться учетные записи, но если вы нажмете на нее последней, рамка исчезнет.
  3. Если пользователь входит в учетную запись без соответствующих разрешений, а затем добавляет авторизованную учетную запись, при загрузке встроенного Диска Google будет использовать первую активную учетную запись, и пользователь увидит Вам требуется разрешение, если только. ..
  4. Если URL-адрес содержит домен Google Suite и пользователь вошел в учетную запись этого домена, встроенное представление будет работать, даже если пользователь сначала вошел в другую учетную запись.

Пустые фреймы связаны с тем, что Google запрещает встраивать свою страницу входа в IFRAME (предположительно, чтобы предотвратить кражу учетной записи) через заголовок X-Frame-Options, который, если установлено значение SAMEORIGIN, приведет к тому, что любой браузер с хорошим поведением откажется загружать страницу, если она не находится в тот же домен (vg drive.google.com). Вы можете увидеть это в консоли разработчика вашего браузера.

TL;DR

Чтобы получить список или сетку папки на Диске (в которой все, что вы можете сделать, это щелкнуть файл или папку, чтобы открыть ее на новой вкладке), используйте:

<iframe src="https://drive.google.com/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>

или, альтернативно, для Google Suite/Apps Drive:

<iframe src="https://drive.google.com/a/MY.DOMAIN.COM/embeddedfolderview?id=FOLDER-ID#grid" style="width:100%; height:600px; border:0;"></iframe>

Замените MY.DOMAIN.COM и FOLDER-ID собственными; удалите #grid, чтобы получить подробный список файлов.

Для личных папок попросите пользователей войти в правильную учетную запись перед загрузкой страницы со встроенной папкой; если папка находится в домене Google Apps, вы можете добавить домен к URL-адресу. В противном случае они должны войти в авторизованную учетную запись перед любой другой.

(этот ответ является правкой Мори, но он был отклонен, так как каким-то образом изменил его намерение)

person Community    schedule 04.04.2017
comment
Есть ли способ получить клавишу со стрелкой карусели (›) для увеличения изображений iframe? - person Kuhan; 04.01.2020

Для бизнес-приложений / приложений Gsuite или как они их называют, вы можете указать домен (была проблема с 500 ошибками с исходным ответом при входе в несколько учетных записей Google).

<iframe 
  src="https://drive.google.com/a/YOUR_COMPANY_DOMAIN/embeddedfolderview?id=FOLDER-ID" 
  style="width:100%; height:600px; border:0;"
>
</iframe>
person ElDog    schedule 14.01.2017

На момент написания этого ответа не было метода встраивания, который позволял бы пользователю перемещаться внутри папок и просматривать файлы, не покидая веб-сайт (метод в других ответах открывает все в новой вкладке на веб-сайте Google Диска), поэтому я сделал свой собственный инструмент для этого. Чтобы встроить диск, вставьте приведенный ниже код iframe в свой HTML:

<iframe src="https://googledriveembedder.collegefam.com/?key=YOUR_API_KEY&folderid=FOLDER_ID_WHIHCH_IS_PUBLICLY_VIEWABLE" style="border:none;" width="100%"></iframe>

В приведенном выше коде вам нужно иметь собственный ключ API и идентификатор папки. Вы можете установить высоту по своему желанию.

Чтобы получить ключ API:

1.) Перейдите на страницу https://console.developers.google.com/ и создайте новый проект. .

2.) Из кнопки меню перейдите в «API и службы» -> «Панель инструментов» -> нажмите «Включить API и службы».

3.) Найдите «API Google Диска», включите его. Затем перейдите на вкладку «Учетные данные» и создайте учетные данные. Не ограничивайте свой ключ API.

4.) Скопируйте вновь сгенерированный ключ API.

Чтобы получить идентификатор папки:

1.) Перейдите в папку на Google Диске, которую вы хотите встроить (например, drive.google.com/drive/u/0/folders/1v7cGug_e3lNT0YjhvtYrwKV7dGY-Nyh5u [это не настоящая папка]). Убедитесь, что папка общедоступна. и виден любому.

2.) Скопируйте часть после «folders/», это идентификатор вашей папки.

Теперь поместите ключ API и идентификатор папки в приведенный выше код и вставьте.

Примечание. Чтобы скрыть кнопку загрузки для файлов, добавьте «&allowdl=no» в конце URL-адреса источника iframe.

Я сделал виджет с учетом мобильных пользователей, однако он подходит как для мобильных устройств, так и для компьютеров. Если у вас возникнут проблемы, оставьте комментарий здесь. Я прикрепил несколько скриншотов содержимого iframe здесь.

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

person ssy    schedule 04.04.2020
comment
Он отображает только текст: Обзор файлов - person Chips147; 19.10.2020
comment
@ Chips147, возможно, ключ API или идентификатор папки скопированы неправильно. Или, может быть, конкретная папка, которую вы пытаетесь отобразить, недоступна для общего просмотра (разрешения на общий доступ-> любой, у кого есть ссылка, может просматривать) - person ssy; 20.10.2020