Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I get a file list for a Google Drive public hosted folder?

Is there a way to get a file listing without using authorization for a publicly hosted Goolge Drive folder?

Example folder: https://googledrive.com/host/0B1Nmfb7VDM6jNnhjWk9CdU9ueHc/

I want to use the folder to host images that I will display in a gallery on other sites.

like image 639
Art Avatar asked Aug 08 '13 00:08

Art


1 Answers

OK there is a way and it's pretty simple, it just needs a bit of setup. We need to get a Google Drive URL that can return JSONP, then run the request against it.

The setup

Generate the public URL. Go to: https://developers.google.com/apis-explorer/?hl=en_GB#p/drive/v3/drive.files.list

In the 'q' field enter the following:

'{your_public_folder_id}' in parents

Click the "Execute without OAuth" link underneath the button.

You should now see all your files listed underneath. It also show you the GET request. That is the URL you will need.

Copy the Request URL. Something like: https://www.googleapis.com/drive/v3/files?q='{your_public_folder_id}'+in+parents&key={YOUR_API_KEY}

Now, you will need to generate the API key. Go to Google Console: https://console.developers.google.com/ In left menu select 'Credentials'. Click 'Create credentials' and select API key. Click 'Browser key' Copy the generate key.

The execution

You can now do something like this:

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(){

});
like image 129
iDevGeek Avatar answered Sep 28 '22 15:09

iDevGeek