Monday, March 10, 2008

Tumblr hack: Author's Notes via Google Docs

This is a very basic HOWTO on retrieving a particular item in a Google Docs spreadsheet from your blog (not necessarily Tumblr), something that I could have used a few days ago. I use this over at my scifaiku site to show author notes for particular posts. *


  1. Create a new spreadsheet

  2. Use the first row to label the fields

  3. Enter some data

  4. Publish the spreadsheet

  5. Go to More publishing options

  6. Select RSS from the File format dropdown

  7. Click Generate URL and copy the resulting URL

  8. Modify the URL from something like
    http://spreadsheets.google.com/feeds/list/
    o<numbers>.<numbers>/od6/public/basic?alt=rss


    to something like (one line)

    http://spreadsheets.google.com/feeds/list/
    o<numbers>.<numbers>/od6/public/basic?
    alt=json-in-script&callback=notesLoaded&sq=postid%3D{PostID}


    where sq is a structured query (in this case, the postid field must be equal to the current Tumblr post id)

  9. Create a JSON call using the above URL, and put this near </body> (one line):

    <script src="http://spreadsheets.google.com/feeds/list/
    o<numbers>.<numbers>/od6/public/basic?
    alt=json-in-script&callback=notesLoaded&sq=postid%3D{PostID}" type="text/javascript"></script>

  10. Specify an output location using a named div
    <div id="authnotes_load"></div>

    If you want a nice "loading" animation to put inside this div, get one from ajaxload.info

  11. Write the callback handler:
    function notesLoaded(obj) {
    var notediv = document.getElementById('authnotes_load');
    if(typeof(obj['feed']['entry']) != 'undefined') {
    // 10 length of 'authnote: ', the first column
    var note =
    obj['feed']['entry'][0]['content']['$t'].substring(10);
    notediv.innerHTML = "<p><span>author's notes :"
    + "</span> " + note + "</p>";
    } else
    notediv.innerHTML = '';
    }

Adjust the above to taste. Enjoy!

You can see this in action here. A modified version is used at the main scifAI page ("42").

* Update: Deprecated in favor of just using Disqus comments.

1 comment:

Gari said...

RSS is not included in the file format dropdown anymore?