Question

My app accesses private Google spreadsheet documents on behalf of an authorized user. It seems that Google's API expects developers to first request a list of all the spreadsheet documents available to an authorized user before they can get at a particular spreadsheet's keys. I wanted to find a workaround to this, and eventually did by extracting the key parameter value from URLs spreadsheet URLs that look like this:

https://docs.google.com/spreadsheet/ccc?key={some long key here}&usp=drive_web#gid=0

It was simple enough to just break down the string to point where I could retrieve key's value fairly easy without the need of a regex.

Recently, though I don't know how recent, I notice URLs to newly created Google Drive spreadsheets come in this form:

https://docs.google.com/spreadsheets/d/{some long key here}/edit#gid=0

I was also able to extract the key from this URL string, but am just curious about the difference between the two URLs:

  1. What is the significance between the two URLs.
  2. Why does Google's API force devs to first get a list of all available docs, when a dev might just want to extract a key from a direct URL to a Google Drive spreadsheet doc.

Thanks!

Was it helpful?

Solution

Old style sheets

They work online only and limited to about 400,000 cells per spreadsheet.

Old style URL

 https://docs.google.com/spreadsheet/ccc?key={some long key here}&usp=drive_web#gid=0

New style sheets

Released about mid Dec 2013

Works offline and (if I remember) up to 2,000,000 cells per spreadsheet.

https://docs.google.com/spreadsheets/d/{some long key here}/edit#gid=0

Spreadsheet KEY

I get the key using Google-apps-script, as described here: Get the spreadsheet key that is in the URL. Not ss.getId()

OTHER TIPS

Where are you getting the URL from? You shouldn't rely on specific URL formats, these are subject to change and not intended to be reliable. You should be able get just the id by specifying the "fields" parameter in your request. See https://developers.google.com/drive/v2/reference/files/list

Cloudward has solved this through Cloud Snippets. Here's two that may be of help, there are lots of others to explore as well.

Publish Simple List from Google Sheet: https://snippets.cloudward.com/app_listing.espx?template_id=0d367025e8b5f402cd510905cade1d29&account_id=&cat_id=c478885bb325028151eaa9060422c67f

Publish Google Doc by ID: https://snippets.cloudward.com/app_listing.espx?template_id=51925e7ed2166d7d83a8c32fa1ee88dd&account_id=

Hope this helps.

Bob

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top