Можно ли отображать документы с моего диска на веб-странице? Я хочу, чтобы пользователь мог щелкнуть документ и загрузить его прямо с моего диска. Как мне это сделать? Спасибо вам за ваши предложения.
Для решения HTML / JavaScript рассмотрите следующие ссылки:
https://developers.google.com/drive/quickstart-js
https://www.youtube.com/watch?v=09geUJg11iA
https://developers.google.com/drive/web/auth/web-client
Вот самый простой способ использования JavaScript, большая часть сложности находится в вашей авторизации WebApp. В приведенном ниже примере читаются идентификаторы файлов, имена и описания в указанной вами папке.
– перейдите по адресу : https://cloud.google.com/console/project и создайте новый проект «xyz»
– Выберите «APIs & auth», отключите те, которые вам не нужны, включите «Drive API»,
– Выберите «Учетные данные»,
нажмите кнопку «СОЗДАТЬ НОВЫЙ КЛИЕНТ»
x Веб-приложение
Авторизованные источники Javascript: « https://googledrive.com/ »
Авторизованный URI перенаправления: « https://googledrive.com/oauth2callback »
это приведет к:
Идентификатор клиента: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
Адрес электронной почты: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com
Секрет клиента: xxxxxxxxxxxxxxxxxxxx
Перенаправление URI: https://googledrive.com/oauth2callback
Javascript Происхождение: https://googledrive.com/
– в приведенном ниже коде заменить
CLIENT_ID с xxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com
FOLDER_ID с идентификатором, который вы видите в строке адреса папки,
https://drive.google.com/?tab=mo&authuser=0#folders/xxxxxxxxxxxxxxxxxxx
– запустить его, разрешить
Я не знаю, читаете ли вы JS, код может следовать снизу вверх, я сделал это как можно проще.
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> var FOLDER_ID = '.xxxxxxxxxxxxxxxxxx'; // the folder files reside in var CLIENT_ID = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com'; var SCOPE = //'https://www.googleapis.com/auth/drive'; [ 'https://www.googleapis.com/auth/drive', 'https://www.googleapis.com/auth/drive.file', // for description, ]; function rsvpCB(resp) { var picAlbumLst = '<ul>\n'; for (i=0; i<resp.items.length; i++) picAlbumLst += ( ' <li>'+resp.items[i].id+', '+resp.items[i].title+', '+resp.items[i].description+'</li>\n'); picAlbumLst += "</ul>\n"; $('#container').append(picAlbumLst); } function rqstCB() { //test @ https://developers.google.com/drive/v2/reference/files/list var rv = gapi.client.drive.files.list({ 'q': '"'+FOLDER_ID+'" in parents and trashed = false', 'fields' : 'items(id,title,description)' //'items(id,title,description,indexableText)' }).execute(rsvpCB); } // authorization server reply function onAuthResult(authResult) { var authButton = document.getElementById('authorizeButton'); authButton.style.display = 'none'; if (authResult && !authResult.error) { // access token successfully retrieved gapi.client.load('drive', 'v2', rqstCB); } else { // no access token retrieved, force the authorization flow. authButton.style.display = 'block'; authButton.onclick = function() { checkAuth(false); } } } // check if the current user has authorized the application. function checkAuth(bNow) { gapi.auth.authorize({'client_id':CLIENT_ID, 'scope':SCOPE, 'immediate':bNow}, onAuthResult); } // called when the client library is loaded, look below function onLoadCB() { checkAuth(true); } </script> <script src="https://apis.google.com/js/client.js?onload=onLoadCB"></script> <body style="background-color: transparent;"> <input type="button" id="authorizeButton" style="display: none" value="Authorize" /> <div id="container"> </div> </body>
Самое быстрое и простое решение – вставить папку с помощью iframe (без необходимости использования javascript). Очевидно, что это также наименее гибкое решение, хотя вы можете использовать CSS для изменения макета содержимого iframe (см. Ниже).
Google Диск не позволит встраивать URL-адрес, который вы обычно используете. Он имеет заголовок X-Frame-Options, установленный на «SAMEORIGIN», что предотвращает использование в iframe. Таким образом, вы должны использовать следующую ссылку, которая позволит внедрить:
https://drive.google.com/embeddedfolderview?id=DOCUMENT_ID#VIEW_TYPE
DOCUMENT_ID – это идентификатор, указанный в обычной ссылке общего доступа (которая выглядит как https://drive.google.com/folderview?id=DOCUMENT_ID ), поэтому вы можете просто скопировать ее оттуда.
VIEW_TYPE должен быть либо «сеткой», либо «списком», в зависимости от ваших предпочтений.
И если вам нужно изменить стиль содержимого iframe, взгляните на это решение .
read access
для read access
пользователю, использование JavaScript, jQuery и т. Д. На передней панели является жизнеспособным вариантом. Вы также можете сделать это на PHP, это всего лишь вопрос личных предпочтений. Javascript Origins
на http://localhost
File
затем « Publish to Web
, и вам будет предоставлен тег iFrame HTML, который может быть встроен в вашу веб-страницу. Вы можете изменить высоту и ширину iFrame в соответствии с размером документа. Инструкции iFrame W3Schools FILE
а затем DOWNLOAD AS
из меню. Git Hub
для Google Диска, вы можете найти что-то там. Это должно быть сделано с помощью API Google . Вы можете искать google drive php api list files
в google . И также я нашел это и это на SO.