10.23.2006 - AIM Javascript API

I've finally been given the okay to talk about it since Stephen announced it at Web Guild last week. I would have mentioned it sooner but I was in Las Vegas, losing money and celebrating my sister's wedding :)

So - AOL, as part of the Open AIM initiative, is releasing its AIM service to the web via a series of JSON/XML APIs. I've been working on a set of Javascript APIs to make it easier to interface with this since the beginning of the summer, which is primarily why it has been so quiet around here lately.

I'm still not allowed to show anything off (probably in a week or so...keep an eye out), but I can tell you that I've written a complete AIM client in javascript that you can embed wherever you like (no popup and not hosted in an iframe). And, since its just HTML, you can style it however you want (we have some really kick ass, off the wall themes for it), or add functionality to it, or mash it up with other public APIs, or whatever you can dream up. All you have to do is get an API key (link forthcoming...) include a pointer to the javascript and include an element for it to hook into. After that, you can define your own params and callbacks if you want to extend it.

I stress that the AIM client I've written is just an example of what the API is capable of. Maybe you're just interested in the IM portion of the technology - thats fine, you can just use that part and never expose a buddy list.

Or, maybe you'd just like to compile a list of your friend's away messages. That's cool too - you can just subscribe to presence updates and grab their away message, never rendering a buddy list at all or worrying about incoming messages.

Or, maybe your wiki can have its own screen name and listen for incoming updates from you and your friends via IM while you attend different panels at SXSW, adding and editing entries appropriately based on your extension to the API. It's cool stuff, and absolutely possible and easy to implement.

What's better is this is just the beginning of what we intend to do. We've got loads of stuff we want to add, like "capability" support so you can do things like send non-chat data between clients. This is exciting for me primarily because its going to make multiplayer javascript games really, really easy. I don't have to stand up a database of user names (or ask you to come up with one and remember yet another password), or a protocol for data transport, or any of the other things you'd have to do for something like this. Its already there with what exists with AIM.

I'm really stoked to have worked on this - its gotta be one of the coolest projects, if not the coolest, that I've been part of in my time with AOL. The first time an IM went from my Safari window and the Adium icon in my dock starting jumping up and down, I squealed like a little girl. It was just that bad ass.

So thats my cool news - keep an eye on the RSS feed for updates about documentation, FAQs and demos - I'm still finishing up docs for the CSS hooks the API uses as well as the API proper with how-to's, and hope to have them available here within the week. Leave a comment or hit me up via the contact form if you have any questions.