Did you know that Microsoft’s Windows Live has been actively embracing the emerging Activity Streams open standard?

About a month ago, I traveled to Portland, Oregon, USA to participate in a “Federated Social Web Summit” organized the day before OSCON by Evan Prodromou and the team from Status.net. We spent the morning with each participant demo’ing their project or protocol for about five minutes. Below is my attempt to re-format my presentation as a blog entry.

---

My name is Rob Dolin and I’m a Program Manager on the Windows Live Social team. I’m also a co-author of the Activity Streams in Atom spec. You can find me on identi.ca as @RobDolin (and a few other places.) In the next few minutes, I’ll try to briefly explain:

  1. What is “Windows Live” (from the perspective of federated social activities)
  2. Where activity streams show-up
  3. How can your project or service read activities from Windows Live
  4. How can your project or service write activities to Windows Live
  5. How can Windows Live direct users to your project or service

Windows Live as an activities generator, store, and display

Windows Live includes a set of web services, PC apps, and mobile apps:

If you only do one thing to get a sense of how Windows Live integrates activities, I recommend downloading the WLE Beta and running Messenger.

Activity streams integrated throughout Windows Live and other Microsoft services

The activity stream from Windows Live (sometimes referred to as “Messenger social updates”) is integrated throughout Windows Live services and apps.

Windows Live Messenger

Windows Live Messenger has a new (default) full window view that dedicates more than 2/3 of the screen to the Windows Live activity stream:

Screenshot of Messenger

 

Windows Live Hotmail

The new Hotmail homepage also includes a large area dedicated to the Windows Live activity stream:

Screenshot of Hotmail

The Windows Live activity steam is not just displayed in Windows Live branded properties, but it’s integrated into Outlook, MSN, and the forthcoming Windows Phone 7:

Outlook Social Connector

If you install the Outlook Social Connector for Windows Live Messenger, you’ll be able to see recent social activities of your contacts when you email with them:

Screenshot of Outlook with the Social Connector expanded.

As you can see above, the Windows Live activities stream doesn’t just include activities from Windows Live, in Douglas’s case above, it includes photos he shared on Flickr. Users can bring activities they have done from across the web into the Windows Live activities stream. I’ll explain more below about how you can enable your users to share activities from your service or app into Windows Live.

MSN

There’s also a new social module on the MSN homepage. On the USA homepage of MSN, this is in the right column:

Screenshot of MSN Screenshot of MSN right rail

Windows Phone

The upcoming Windows Phone 7 has a new “People” view that is powered by Windows Live Activity Streams:

Windows Phone 7WP7-2

How to Read Activities

On every one of the hundreds of millions of Windows Live users’s profile pages, there is a link to an Activity Streams (Atom) feed of that user’s publicly shared activities. You can easily get to this from your web browser by clicking the orange RSS/Atom icon:

image

This will take you to a feed of the user’s publicly shared activities on Windows Live. Try it on your own Windows Live profile: http://profile.live.com/.

You can view this in a web browser or your favorite RSS reader. And if you view the source of this feed, you’ll notice that it includes the <activity:verb> and <activity:object> elements of Activity Streams in Atom:

image

In addition to this link on profile pages to public Windows Live activities, developers can also read non-public activities (if a user gives permission) through the new “Messenger Connect” API’s. I’ll talk more about these below and you can learn more about these at http://dev.live.com/.

Activities in Windows Live from 75+ partners and growing

Since December 2008, users have been able to bring their social activities from dozens of services across the web into Windows Live. This has included services you likely know well like Facebook, YouTube, MySpace, Pandora, Hulu, and WordPress:

image

And this includes services from all around the world like AlloCine, Arto, Azbuz, Biip.no, Bilddagboken, Blingee, and more:

image

All of these integrations are powered by open standards including RSS 2.0, Atom 1.0, MediaRSS, Activity Streams in Atom, and at base, XML. In the next few paragraphs, I’ll briefly explain how you can add your project or service to write activities to the Windows Live activity stream so that they show-up in Messenger, Hotmail, MSN, Outlook, and Windows Phone.

How to Write Activities

There are three ways to enable your users to bring their activities from your project or service into Windows Live:

  1. Badge
  2. Feed
  3. API

Writing Activities to Windows Live via Badge

The easiest way to write an activity to Windows Live is to have a user click a “badge” link. For example, try clicking this link: http://profile.live.com/badge/?url=http://status.net/2010/06/28/federated-social-web-summit-2010-announced. This takes you to a page (below) where you can add your own user message and confirm that you want to share that particular URL. As a developer, you can replace the “url” QueryString parameter with whatever URL your user has indicated he or she wants to share.

image

The http://profile.live.com/badge/ page will pre-populate a page title, description, and screenshot image for you from the page, OR you can pass these in as QueryString params to specifically populate them. You can also pass a return URL as a QueryString param so the user gets redirected back to your site after they share the link.

More details on the “badge” are at: http://msdn.microsoft.com/en-us/windowslive/ff796213.aspx including sample code you can quickly cut and paste into your own website:

image

Writing Activities to Windows Live via Feed

If your service has RSS, Atom, MediaRSS, or Activity Streams (in Atom) feeds, you can enable your users to tell Windows Live to poll their activity stream feed from your service. To set-up your service, you get an Application ID and fill-out a relatively simple form at: http://manage.dev.live.com/

As shown below, this will ask you for some basic info like your Home page URL, Sign-up URL, Support URL, and of course, Feed type:

image

You’ll also tell Windows Live how to compose a URL to retrieve your feed. For example below, Windows Live asks users to enter a “User name” and then uses the “replacement patterns” you specify:

image

Windows Live gives you a variety of choices for “User input label” and has these values translated into over 40 languages so you don’t need to know how to ask a Hungarian user for their email address.

After you’ve set-up Windows Live to know how to poll your service’s feed, you can direct users to the page where they can add your service: http://profile.live.com/services/add.aspx?AppID={YourAppID}&ru=http://www.YourService.com/return. You can even pass a “ru” QueryString parameter to specify the “return URL” for Windows Live to direct users to after they have connected Windows Live to your service. To get started, go to http://manage.dev.live.com/.

For each user who connects your service, Windows Live will start polling relatively frequently (every 30-60 minutes) and then start polling less frequently for less active users on your service.

If your service already has RSS, Atom, or Activity Streams feeds, this is likely the easiest way to help your users bring their content into Windows Live. To get the nicest looking results (i.e. photos treated as photos, etc.) you might just need to add a few <activity:…> elements as described in the “Choosing your Activity Type(s)” section below.

Writing Activities to Windows Live via API

Finally, your service can also write activities to Windows Live via our “Messenger Connect” set of API’s. You’ll set-up your connection to Windows Live and similarly point your user to an add.aspx page passing-in your AppID. The user will consent to have you write activities on their behalf (and possibly do other things like read and write SkyDrive photos or Messenger contacts ) and the user will be returned to your site (or client application) along with a token you can use to make calls on the user’s behalf.

To push write activities to Windows Live, you’ll make HTTP POST’s where the body of your request is in the Activity Streams in Atom format. The below screenshot from the online documentation describes how this gets rendered:

image

While there are potentially hundreds of <activity:verb> + <activity:object> combinations from Activity Streams, Windows Live supports a large portion of the most common combinations:

image

More details on publishing activities to Windows Live via API can be found at: http://msdn.microsoft.com/library/ff748785.aspx.

Choosing your Activity Type(s)

(This section was added at the suggestion of my colleague, @AngusLogan)

Whether you’re writing via feed or writing via API, if you choose a specific pairing of <activity:verb> and <activity:object-type>, users will potentially see your activity looking differently. For example:

A “Post” of a “Status Update” is displayed in Messenger as:
clip_image001

A “Post” of a “Photo” or a “Post” of multiple “Photo” objects in a target “Album” looks like:

image

A “Post” of a “Bookmark” looks like:
clip_image001[6]

And a “Post” of a “Blog-entry”:
clip_image002

There are about a dozen more variations and you can see examples of what all of these look like on the web and what the XML for these looks like at: http://msdn.microsoft.com/en-us/library/ff748785.aspx.

Thank you, more?

I hope that you found this blog entry both useful and informative. To learn more:

Leveraging Activity Streams, you can read activities from Windows Live into your app or service; and write activities from your app or service to Windows Live so your users and their friends will see them in Messenger, Hotmail, MSN, Outlook, Windows Phone, and more.

Thanks very much for reading and for your interest in Messenger Connect—

--Rob Dolin
Program Manager, Windows Live team

P.S. If you enjoyed this blog entry and would like to see more blog entries along similar topics, please leave a comment explaining what you’d like to learn more about.