У меня есть папка на Google Диске, которую я бы хотел встроить на свой сайт. Я не могу найти код для встраивания или что-либо, задокументированное в статьях справки Google Диска.
Как вставить папку Google Диска на веб-сайт
Ответ 1
Папки 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>
Q: что такое идентификатор папки (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
Ответ 2
Вставка каталога 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
.
Папка с доменом Google Suite/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 активны в браузере пользователя:
- Если пользователь не выполнил вход в какую-либо учетную запись Google, в кадре появится ничего.
- Если пользователь зарегистрирован в учетной записи без авторизации для доступа к папке, в кадре будет содержаться сообщение "Требуется разрешение" с некоторыми кнопками "Запросить доступ" или "Переключить учетные записи", но если вы нажмете на это последнее, кадр будет пропущен.
- Если пользователь входит в учетную запись без надлежащих разрешений и позже добавляет авторизованную учетную запись, при загрузке встроенного диска Google прибегает к первой активной учетной записи, и пользователь увидит, что вам нужно разрешение, если...
- Если 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:
<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-адрес. Кроме того, они должны войти в авторизованную учетную запись перед любым другим.
(этот ответ является отредактированием Мори, но он был отвергнут, поскольку он каким-то образом изменил его намерение)
Ответ 3
Для бизнес-приложений/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>