Как получить список файлов для общедоступной папки Google Диска?

Есть ли способ получить список файлов без использования авторизации для общедоступной папки Goolge Drive?

Пример папки: https://googledrive.com/host/0B1Nmfb7VDM6jNnhjWk9CdU9ueHc/

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

Ответ 1

Невозможно сделать это без проверки подлинности. Однако вы можете аутентифицироваться как ЛЮБОЙ пользователь и получить список с drive.children.list()

Ответ 2

ОК, есть способ, и это довольно просто, ему просто нужно немного настроить. Нам нужно получить URL-адрес Google Диска, который может вернуть JSONP, а затем запустить запрос против него.

Настройка

Создать общедоступный URL. Идти к: https://developers.google.com/apis-explorer/?hl=en_GB#p/drive/v3/drive.files.list

В поле "q" введите следующее:

'{your_public_folder_id}' in parents

Нажмите кнопку "Выполнить без OAuth" под кнопкой.

Теперь вы должны увидеть все ваши файлы, перечисленные ниже. Он также показывает вам запрос GET. Это URL, который вам понадобится.

Скопируйте URL-адрес запроса. Что-то вроде: https://www.googleapis.com/drive/v3/files?q= '{your_public_folder_id}' + in + parents & key = {YOUR_API_KEY}

Теперь вам нужно сгенерировать ключ API. Перейдите в Google Консоль: https://console.developers.google.com/ В левом меню выберите "Учетные данные". Нажмите "Создать учетные данные" и выберите ключ API. Нажмите "Браузерный ключ" Скопируйте сгенерированный ключ.

Выполнение

Теперь вы можете сделать что-то вроде этого:

var api_key = '{YOUR_API_KEY}';
var folderId = '{your_public_folder_id}';
var url = "https://www.googleapis.com/drive/v3/files?q='" + folderId + "'+in+parents&key=" + api_key;
var promise = $.getJSON( url, function( data, status){
    // on success
});
promise.done(function( data ){
    // do something with the data
}).fail(function(){

});

Ответ 3

Существует простой способ перечислить общую папку - просто используйте YQL, чтобы получить результаты XML или JSON.

Ответ 4

Для тех, у кого все еще есть проблемы с этим запросом, просто используйте этот шаблон: https://www.googleapis.com/drive/v3/files?q=%27{YOUR FOLDER ID}%27+in+parents&key={YOUR API KEY} без скобок. Это действительно помогает мне, потому что проблема этих персонажей "

Ответ 5

Ваш расширенный URL-адрес устройства google this, поэтому используйте расширенный URL-адрес, как показано ниже, чтобы получить все файлы, заканчивающиеся на расширение .html. В этом примере используется вызов ajax с помощью jquery.

Подчеркните script в соответствии с вашими потребностями.

<script type="text/javascript">
var dir = "https://d95b2b8c54c1827d7a316594f5436a81b5bb2b76.googledrive.com/host/0B1Nmfb7VDM6jNnhjWk9CdU9ueHc/";
var fileextension = ".html";
$.ajax({
//This will retrieve the contents of the folder if the folder is configured as 'browsable'
url: dir,
success: function (data) {
    //Lsit all png file names in the page
    $(data).find("a:contains(" + fileextension + ")").each(function () {
        var filename = this.href.replace(window.location.host, "").replace("http://", "").replace("https://", "");
        console.log(filename);
        filename = filename.split("/").pop();
        $("body").append($("<a href=" + dir + filename + ">" + filename + "</a>"));
    });
    });
}
});
</script>

Это будет записывать все finename (.html) в консоль и добавлять гиперссылку для каждого имени файла до конца тела.