This is a follow-up post that I had promised regarding these two previous posts:
So… first and foremost, I only extended an existing WLW plugin developed by Daniel Cazzulino called Cross-Post (CodePlex source here). I found his implementation very easy to follow and well suited to boot-strap my idea for posting to Ping.fm's REST API. I also used (but modified to my liking) the C# Wrapper Class written by Adam Duffy (a developer at ping.fm) located here.
Now for the details of each component (Cross-Post plugin & Ping.fm API)…
Cross-Post plugin
The Cross-Post plugin was designed to take a just published blog post in Windows Live Writer (WLW), and then post it (optionally summarized) to all the other weblogs configured in WLW. For a full and complete description, please check the author's blog post that describes it:
How to cross post entries across blogs from Windows Live Writer
Ping.fm REST API
Ping.fm did a wonderful job keeping their REST API clean and simple. If you are not familiar with their site or service, they describe themselves in the following way.
"Ping.fm is a simple service that makes updating your social networks a snap."
They allow you to post to 22 (at the time of this post) different social/bloglike sites (listed here in no particular order): twitter, jaiku, facebook, myspace, bebo, tumblr, pownce, friends, message, mashable, brightkite, xanga, plurk, plaxo pulse, identi.ca, friendfeed, blogger, hi5, kwippy, wordpress, livejournal
As far as their REST API, it is well documented here. The two methods my implementation uses are:
- user.validate: Validates the given user’s application key. This is how authentication/authorization works on their calls. The combination of the developer's API Key and the user's Application Key. I call this method when a user enters their key into the plugin's Option Dialog within WLW.
- user.post: Posts a message to the user’s Ping.fm services. This allows 3 basic methods, blog, microblog, and status. I make two of these calls for the cross-post.
- The first as a blog post with title intact yet the body is optionally summarized with the link back to the source post. This uses that optional "title" parameter of the "user.post" method.
- The second is a microblog post that states:
"New Blog – " [title]:[permalink]
The best part about this is that Ping.fm automatically shortens all links greater than 20 characters long.
So what does it look like when it posts…?
Well… this post that I am writing now and you must be reading sometime later was posted using WLW and this Cross-Post plug-in. So it got posted as a full blog post here, and a summarized (200 characters) to the following blogs:
It was also posted as a announcement link on the following Micro-Blogs of mine:
Now all I need to do is complete me testing and fine tuning, then I can submit it first to Ping.fm for approval (that will allow for users other than me to use my API Key to post). Once that is done I can submit the plugin to the WLW Gallery.