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:
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
COOKIEshould be the Twitter cookie that you just copied
TWITTER_FEED_URLshould be the URL to your Twitter RSS feed
SECRET_OUTPUT_FILEshould 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/uuidgenmay be a good way to come up with a filename (though remember to add an
.xmlsuffix 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 700your shell script and to
chmod 640your 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_URLto Google Reader, and you're all set!