Jason Snell recently explained how to use Applescript to automate the popular Twitter client Twitterific. But, with the help of some simple shell scripting, you can also send quick status updates directly to Twitter from within an Automator workflow.
Start by launching Automator and creating a new custom, blank workflow. In the Utilities category of the actions list, you’ll find the Run Shell Script action. Drag it to your workflow and enter the following script into the action’s text area:
curl -u yourUserName:yourPassword -d status="Tweeting from Automator's 'Run Shell Script' action!" 'http://twitter.com/statuses/update.xml'
This script uses the command-line utility
curl to send a status update to Twitter. Be sure to replace ‘yourUserName’ and ‘yourPassword’ in the script with your actual Twitter username and password, and to use your own custom status message. (Don’t forget to keep it to 140 characters or less!) Once you’re finished, just run the workflow to post the message.
You can pass a message to the Run Shell Script action as input. (Again, keep it short.) To do this, insert an Ask for Text action before the Run Shell Script action. Adjust the Run Shell Script action’s text area so it reads:
curl -u yourUserName:yourPassword -d status="$@" 'http://twitter.com/statuses/update.xml'
Adjust the first field in the Ask for Text action to whatever you want. (I use, "What are you doing?") In the Run Shell Script action, set the Pass Input drop-down to As Arguments and insert your own username and password in the script. When you run it, this workflow will now prompt you for a status update, which it will then post to Twitter.
You can insert any action that results in text before this modified Run Shell Script action. For example, you could create a workflow that uses the Find People with Birthdays and Get Contact Information actions to send out birthday greetings to friends on Twitter. You could even save a workflow like this as an iCal alarm plug-in, to be run automatically on a daily schedule.
You can also pass multiple text messages to the Run Shell Script action. To do so, change the shell script to:
for f in "$@" do curl -u yourUserName:yourPassword -d status="$f" 'http://twitter.com/statuses/update.xml' done
That will loop through all the text input messages and pass them along to Twitter individually. And this is just the beginning of what you can do with
curl and Twitter. For a complete list of supported commands, including usage examples, visit the Twitter API documentation wiki.
[Ben Waldie (@applescriptguru on Twitter) is author of Automator for Mac OS X 10.5 Leopard: Visual QuickStart Guide (Peachpit Press, 2008), president of Automated Workflows, and developer of the Twitter Automator Action Pack.]