The OAuthpocalypse and Keynote Tweet

Monday, 13. September 2010

The Twitter OAuthpocalypse arrived on September 1st. Starting on that date Twitter API clients are required to use OAuth and are no longer allowed to use basic authentication. This change broke more than a few applications that were unprepared for the change. One of those apps is Keynote Tweet.

Keynote Tweet is a simple AppleScript utility that allows you to send tweets from your Keynote presentations. Keynote Tweet uses the curl command-line utility to submit tweets to the Twitter API. Unfortunately there is no easy way to implement OAuth using the curl command-line. It also appears that it would be very difficult to implement OAuth directly in AppleScript.

One solution to making Keynote Tweet work again is to replace curl with twurl. twurl is a curl-like command-line utility for the Twitter API written in Ruby. twurl’s installation and OAuth setup is simple. The twurl syntax is not identical to curl’s, but it is simple to swap twurl out for curl in the Keynote Tweet AppleScript. Simply change the call to curl:

do shell script "curl --user " & twitter_login & " --data-binary " & twitter_status & ""

To a call to twurl:

do shell script "twurl -d " & twitter_status & " /1/statuses/update.xml"

The keyring code in the original script is no longer necessary and can be ripped out of the script. You can download the updated script and documentation here:

Download Keynote Tweet 2

Share 'The OAuthpocalypse and Keynote Tweet' on Delicious Share 'The OAuthpocalypse and Keynote Tweet' on Facebook Share 'The OAuthpocalypse and Keynote Tweet' on Google Buzz Share 'The OAuthpocalypse and Keynote Tweet' on Google Reader Share 'The OAuthpocalypse and Keynote Tweet' on LinkedIn Share 'The OAuthpocalypse and Keynote Tweet' on Twitter Share 'The OAuthpocalypse and Keynote Tweet' on Email

twitterfeed: Tweet Your RSS Feeds

Friday, 9. January 2009

twitterfeed lets you tweet any RSS or Atom feed – a kind of RSS multicasting. Register with twitterfeed, or just login with your existing OpenID credentials, and add a feed.


The main problem with using twitterfeed is that you have to trust it with your twitter credentials. I didn't see any reason not to trust it but given the recent spate of twitter hacking many people will be understandably reluctant. One option would be to set up a separate twitter account just for twitterfeed and let that account do the publishing. The drawback to that is that you would need to get your followers to follow that new account too. Hopefully twitterfeed will adopt something like OAuth in the near future so they don't need your credentials. Ideally twitter will someday introduce a third party application approval mechanism similar to the one Flickr provides.

Once you've decided how to handle the twitter credentials, enter the URL for any RSS or Atom feed – for example – and then you can control to some extent what, when and how get published from the feed.

  • Update frequency Tells twitterfeed how often to poll the RSS feed for updates – from every 30 minutes to once every 24 hours.
  • Post up to: The number of new entries from the RSS feed to post. This can be set from 1 to 5. If there are more new items than that in the feed they will not be posted to twitter. Ever.
  • Include…: Specify whether to include the title, the description or both.
  • Include item link: Include a link to the item along with the text. I can't really think of a situation where you would not want to send the link but somebody must have or this wouldn't be an option.
  • Post new items based on: Publication date or GUID.
  • Prefix each tweet with: This option lets you add some static text to the beginning of each tweet. I haven't tried it but you should also be able to use this to either send the tweet with “@user” or “d user”. If you set up a second account you could have it direct tweet your main accoount with a feed you don't want your followers to see.
  • Filter by keywords: If you set up filter keywords only items from the feed that match one of the keywords will be posted.

Share 'twitterfeed: Tweet Your RSS Feeds' on Delicious Share 'twitterfeed: Tweet Your RSS Feeds' on Facebook Share 'twitterfeed: Tweet Your RSS Feeds' on Google Buzz Share 'twitterfeed: Tweet Your RSS Feeds' on Google Reader Share 'twitterfeed: Tweet Your RSS Feeds' on LinkedIn Share 'twitterfeed: Tweet Your RSS Feeds' on Twitter Share 'twitterfeed: Tweet Your RSS Feeds' on Email