Friday, March 25, 2005

AIM URLs

You may be familiar with the aim: URL scheme, which allows web pages to interact with the AIM client software when the user clicks on a hyperlink..While it's not the most powerful programming model, it's very easy to learn and use. Four of the most common aim: URLs are "AddBuddy", "GoIM", "GoChat", and "BuddyIcon", which I will discuss in more detail below.

AddBuddy is fairly self-explanatory; it typically looks like this:
aim:AddBuddy?screenname=juberti
Clicking this will bring up the AIM user interface to add the specified screenname to your buddylist. It is also possible to add multiple screennames at once, using the "ListOfScreenNames" parameter, and to specify what group they should be added to, using the "GroupName" parameter:
aim:AddBuddy?GroupName=Bots&ListOfScreenNames=aoljournals,zolaonaol,millionaireIM

GoIM allows one to prepopulate an IM window, here's an example:
aim:GoIM?screenname=juberti&message=This+Is+A+Test.
Note the use of the '+' character for spaces; if you want to use the actual '+' character in the URL, you'll need to use '%2B' instead. This ends up being important if you want to send an IM to an SMS number, such as +18005551212.
Also, GoIM will only compose the IM, not send it; this is by design.

GoChat causes the client to automatically enter the specified chat room. The example below creates a new private room called "My Room".
aim:GoChat?roomname=My+Room

BuddyIcon allows you to set the specified screenname's buddy icon to an image that you specify (the user will be prompted first). The example below sets the buddy icon for a user named "test" to be a cool Rubik's Cube.
aim:BuddyIcon?screenname=test&src=http://www.originalicons.com/images/icons/Toys/Classics/1100779782_171306471.gif

Those are the basics. However, there are several other aim: URLs that are also fairly interesting. I'll be writing about those in a future post.

Wednesday, March 16, 2005

AIM Remote

Some people have written in asking how they can get the AIM Web Presence Indicator on their webpage without having to code up a bunch of HTML. Fortunately, we have a tool to help with this called AIM Remote. You enter your screenname and a couple other pieces of information, and it spits out a block of HTML that you can paste right into your web page. Here's an example that I generated:

                  I am OnlineAdd me to your Buddy ListJoin my Chat Room         
           
Note that AIM Remote makes use of several aim: URLs, including AddBuddy, GoIM, and GoChat. I'll be talking about these and some less-known aim: URLs in a future post.

Tuesday, March 15, 2005

AIM Web Presence Indicator - with Buddy Icons!

Some of you have noticed that I display my current buddy icon in the "All About Me" section. This is accomplished through a new feature of the big.oscar.aol.com server, where you can supply a URL of the form "http://big.oscar.aol.com/BartSNQuery?screenname=ZolaOnAOL&type=1" and get a response like
 .

You can also specify "type=0" to get the mini buddy icon.

With some trickery, you can even combine the buddy icon with the AIM Web Presence Indicator to show your buddy icon when you are online, and an offline icon when you are offline. Here's an example: "http://big.oscar.aol.com/juberti?on_url=http://tinyurl.com/4z8aj&off_url=http://www.aim.com/remote/gr/MNB_offline.gif"


Note that I had to use TinyUrl to condense the original BartSNQuery URL, since big.oscar doesn't like multiple "&"s and "="s in the URL. I'll have to see if I can figure out a better workaround.

Give it a shot on your own webpage!

Monday, March 14, 2005

AIM Privacy and Slashdot

OK, I am getting tired of hearing about how "The new AIM TOS allows AOL to have all rights to anything you say on IM, AOL reads/stores all your IMs, etc."

I take this kind of personally, because that is not something I would want to be associated with.

First off, that blurb in the TOS only refers to AIM forum posts, not IMs. I agree that it is vague and should be reworded to be clear.
Second, the amount of IM traffic is on the order of hundreds of gigabytes a day. It would be very costly, and we have no desire to record all IM traffic. We don't do it.
Thirdly, if you still don't trust us, we have Direct IM (aka Send IM Image) and Secure IM in all recent versions of the AIM software. In other words, you can send your IMs in such a way that they never go through our servers, and/or are encrypted with industry-standard SSL and S/MIME technology. I know this since I designed these features. There are no backdoors; I would not have permitted any.

I am saying this as a concerned individual, and not as a corporate spokesperson..

Friday, March 11, 2005

Icons for AIM Web Presence Indicator

One thing about the AIM Web Presence Indicator is that it requires you to supply your own image URLs for online and offline. For those who don't want to go poking around looking for little running man graphics, I found these URLs:

http://www.aim.com/remote/gr/MNB_online.gif
http://www.aim.com/remote/gr/MNB_offline.gif

I also found Frank's Icons, a great AIM buddy icon site that not only has a lot of great icons, but allows you to customize the colors and wording on the icon as well. Here's an icon that I made:

Tuesday, March 8, 2005

AIM Web Presence Indicator, Extended

I got some responses to the last post asking if it was possible to do more than just change the image if the user was online or offline. Well, big.oscar.aol.com doesn't know to supply anything other than an image, but it is possible to use Javascript to get the desired result.

I was hoping that the image's "location" property would be set appropriately based on the redirect from big.oscar, but unfortunately that's not the case. So the only thing I could think of was to have a tiny offline image, and use the image's "height" property to tell in the onload handler whether it was the online or offline image that loaded. Fortunately, this worked pretty well. Here's a simple example page that demonstrates this behavior:

<html>
<script language="javascript">
function imgload(e)
{
    if (document.getElementById("i").height <= 2)
        document.getElementById("s").style.fontStyle = "italic";
}
</script>
<body>
<img id="i" onload="imgload()" border="0" src="http://big.oscar.aol.com/nosuchuser?on_url=http://www.aol.com/aim/gr/online.gif&off_url=http://www.aol.com/aim/gr/offline.gif">
<span id="s">nosuchuser</span>
</body>
</html>

and the output:

nosuchuser

This italicizes the text if the user "nosuchuser" is offline. This is just a simple example, from here you can do lots of things, such as add/change a hyperlink, etc.

Monday, March 7, 2005

AIM Web Presence Indicator

In my next couple posts, I'm going to cover some of the interfaces to the AIM system that exist currently. One such example is the AIM web presence server, AKA big.oscar.aol.com. You can construct an image URL that displays one image if you are online, and another image if you are offline. Here's an example:

<IMG SRC="http://big.oscar.aol.com/juberti?on_url=http://members.aol.com/juberti/images/online.gif&off_url=http://members.aol.com/juberti/images/offline.gif">

Note that if you are not using the "Allow everyone to see me" privacy mode, you will always show up as "offline" in this indicator.

You can also get clever and link the image to an aim GoIM URL, so that anyone who clicks on your icon will be able to easily send you an IM.

<A HREF="aim:goim?screenname=juberti"><IMG SRC="http://big.oscar.aol.com/juberti?on_url=http://members.aol.com/juberti/images/online.gif&off_url=http://members.aol.com/juberti/images/offline.gif"></A>

And here's it in action:

Sunday, March 6, 2005

DoorManBot

Matthew Goldstein wrote in about DoorManBot, a bot that allows users to submit IMs for offline users that will be delivered the next time that user signs on. Looks pretty useful. http://doorman.info/?page=info