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)…

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:

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.