I’m a Facebook fanatic. I joined immediately after they opened to the public. In the beginning, there wasn’t much to talk about. None of my friends had joined and there really wasn’t that much I could do there. But since then, the buzz has caught my friends’ attention and Facebook’s extendibility has grown consistently, giving me a lot to play with.
Since I’ve been catching myself updating both Facebook and Twitter separately, I figured I should revisit my workflow and see if I can tweak my current level of automation.
It wasn’t difficult. I just added a couple lines of code to iQuickTwitter and now I can update Twitter, Facebook, iChat, and Skype with a single command. If you dig it, be my friend and let me know.
Graham English @ Facebook
Graham English @ Twitter
Click here to open the script in Script Editor.
If all you want is to update Facebook with Quicksilver, try this:
Click here to open the script in Script Editor.
If you try to please everyone, somebody is not going to like it.
Michael Wilde says
Graham… seem to be having a problem with URLs in the QS Tweet thing, when i tweet with a URL, nothing gets posted. seen that?
Graham English says
With any URL? Or does it have query parameters like & % etc? I usually use this script via Quicksilver to shorten my URLs before I tweet them:
#!/usr/bin/env python
usage = '''
Takes the URL of the frontmost Safari window/tab and
shortens using the service at metamark.net. The shortened
URL, which starts with "http://xrl.us/", is put on the
clipboard, ready for pasting.
'''
from urllib import urlopen, urlencode
from os import popen
# Two functions for getting and setting the beep sound.
#def getBeep():
# cmd = "defaults -currentHost read -g #com.apple.sound.beep.sound"
# return popen(cmd).read()
#def setBeep(beepFile):
# cmd = "defaults -currentHost write -g #com.apple.sound.beep.sound "
# return popen(cmd + beepFile).read()
# Get the URl of the frontmost Safari window/tab though AppleScript.
applescript = '''tell application "Safari"
URL of front document
end tell'''
url = popen("osascript -e '" + applescript + "'").read().strip()
# Get the shortened URL from Metamark.
shortURL = urlopen("http://metamark.net/api/rest/simple",
urlencode({'long_url':url})).read()
# Put the shortened URL on the clipboard.
popen('pbcopy', 'w').write(shortURL)
# Sound the Ping alert to tell the user the shortened URL is ready.
# Reset the alert sound after beeping.
#oldBeep = getBeep()
#print oldBeep
#setBeep("/System/Library/Sounds/Ping.aiff")
#applescript = 'osascript -e beep'
#setBeep(oldBeep)
burcak says
hi Graham
about the facebook part on your script. is it still working? because I couldn’t get it working properly.
burcak says
hi again
I fixed my problem. Nothing to do with your code
it is working like charm.
thanks
Graham English says
Good. Glad you got it working. 🙂
Trevor says
This may be a total noob kind of question but when I navigate to /Library/Application Support/Quicksilver there is a file called Actions.plst but there is not a folder called Actions. From your post I assumed you were talking about a folder called Actions. How do I work with this?
Graham English says
If there’s no Actions folder, just create one.
Nathan says
Hmm. I was able to get this working for Twitter, but not for facebook. The script returns a growl notice saying it completed (both in the comprehensive and facebook only versions), but the FB status doesn’t update…. Any suggestions? Or has FB changed its status access somehow?
Graham English says
Facebook changed their API. But the best way to update your FB status via Twitter is with the Twitter/Facebook app. So that part of the script has been made redundant.
Victoria Web Design says
Hi Graham,
Have you heard of ping.fm? Man there are hundreds of these little apps out there, its rather confusing what the best.
Great post btw!
Graham English says
Thanks. I know a few folks who use it. I’ve been using FriendFeed to update everything but since they were bought by Facebook, they’ll probably eventually close doors. So I’m on the lookout.
Walter Aparicio says
Hi Graham:
thanks for your code.
It’s work great.