The "missing" tweets belonged to my friends who make their tweets protected, which is why I can only see them when I'm authenticated by Twitter. Like most things on the web, authentication is simply the matter of providing the appropriate cookie with an HTTP request, so I decided to write a little script to get my authenitcated Twitter feed. To do that, first I needed to get my Twitter cookie, which you can get by entering this in the address bar when logged in on any twitter.com URL:
javascript:void(document.body.innerHTML = document.cookie.match(/auth_token=(.*);/)[1])
That should replace the text of the page with your Twitter cookie, making it easy to copy and paste in the script below:
wget --quiet --cookies=off --header "Cookie: auth_token=COOKIE" TWITTER_FEED_URL -O SECRET_OUTPUT_FILE
COOKIE
should be the Twitter cookie that you just copiedTWITTER_FEED_URL
should be the URL to your Twitter RSS feedSECRET_OUTPUT_FILE
should be a file on your Linux machine that is served publicly, but has a long, unguessable URL that people can't stumble upon and use to read your friends' secret tweets! Using/usr/bin/uuidgen
may be a good way to come up with a filename (though remember to add an.xml
suffix to the filename to ensure your browser serves the URL with the correct MIME type). This URL is what you will add to Google Reader.
Now that you have your one-liner, you'll want to put it in a cronjob so you will periodically update your local file with the contents of your full Twitter feed. I just made a shell script with the command above (remember to
chmod 700
your shell script and to chmod 640
your output file!), followed by this command to ping Google Blog Search so that Google will know about your updated feed:curl --silent http://blogsearch.google.com/ping?name=bolinfest+and+friends&url=YOUR_SECRET_URL > /dev/null
Once your file is written, add
YOUR_SECRET_URL
to Google Reader, and you're all set!