Windows Live and Activity Streams

Windows Live and Activity Streams

  • Comments 17
  • Likes

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.

17 Comments
You must be logged in to comment. Sign in or Join Now
  • i am working on WL integration and i could found controls for  sign in, share, chat, .. But i can't find anything controls or APIs that tells how to show the Hotmail inbox into you website just like in MSN.com and even some other regional msn home pages www.windowslive-hotmail.com/.../versatility.aspx so is there any codes or it's something should be done by Microsoft support to make sure not to be used outside MSN pages  ??

  • Flint
    1 Posts

    Great post Rob! One question though. You have mentioned the new social module on the MSN.com page where I can see the activity streams of all my Messenger friends. How can I integrate something like this on my webpage? Is this done using Messenger Connect? I guess it is easy to pull an activity stream from one user into this module but from many users?

    Thanks.

  • A great post Rob, thank you so much for the thorough content.  Will provide link to our clients using Windows Live.

  • I hope it's the right space to leave my observation. I use hotmail since 5 years ago (sorry for my english, I'm not very experienced). Now, last update of it, added also a problem, a pejorative change. When you want to select many mails from the "mails that arrive to you" page - I don't know what's the right name of it - after selecting one or two or three mails, to erase or move them, you (try to) select another, then the others, already selected.... turn to be unselected.

    With the result that you can't entrust to select more than one, max two e-mails, to move or erase. Not little discomfort.

    -- - Emilio

    If you know a better site or page in witch I could publish my comment or obervation, so that was heard by right developers, please to indicate it here to me. Thank you and sorry again for my english.

  • " had almost finished mine" should, of course, have been "almost finished mine."

  • Interesting post.

    I did a post on using the Messenger Connect API, including activity streams, which might interest some readers of this post.

    nmackenzie.spaces.live.com/.../cns!B863FF075995D18A!728.entry

    I wish I had read this one before I had almost finished mine.

  • @Rob,

    The whole point is that because I don't use Hotmail, I don't see any of these notifications at all, even though most of them have nothing to do with Hotmail.  If I go to the Hotmail homepage you quote, I see exactly what I see on my Windows Live Home page, i.e. NO invitations, NO private messages, NO Calendar.

    Clearly, the redesign of the Wave 4 services has neglected to take into account those of us who don't use Hotmail. It's been a step backwards from what we had.

    I've used my primary email address since 1994, i.e. before Hotmail even existed (it launched as HoTMAIL in 1996, and was acquired by Microsoft in 1997). I have no wish to move. Also, my Windows LiveID is tied to my primary email address.

    But, thanks for taking the time to reply to my comment. It is appreciated.

  • @Geoff  Even if you don't use Hotmail as your primary email, as you describe and can see in the screenshot, the Hotmail homepage (http://www.hotmail.com/) is a great place to get started.  It includes a bunch of notifications (like invitations, privage messages, and calendar); shows the Windows Live activity stream (under "Messenger Social"); and shows MSN headlines (right column.)  

    IMHO, it's a great place to use as your browser's homepage combining personal notifications and personal social activity updates with general news from MSN.

    All the best--

    --Rob

    P.S. You might want to consider trying the new Hotmail.  For my personal use, I've had my own hosted email on my own domain for years, but I'm increasingly coming back to the Hotmail account I've had since senior year of college.  My colleague Mike has a good post about the new Hotmail at: windowsteamblog.com/.../the-new-hotmail-is-now-available-to-everyone.aspx

  • Thanks, Rob, your post has cleared up a mystery for me. The screenshot of your Hotmail homepage has a widget at the top that, up until a few weeks ago, used to be on the Windows Live Home page. It's the widget that displays the date, weather, and has links to private messages, invitations and calendar.

    The issue is that I don't use Hotmail, but now that the widget has been removed from the Windows Live Home page, the only way I can get at my private messages is jumping via a series of links.

    I also can't see at a glance what the local weather is, or if I have invitations or upcoming appointments in my Calendar.

    By all means, have this widget on the Hotmail homepage, but I wish that this widget was also put back on the Windows Live Home page for those of us who don't use Hotmail.

  • @Binie Good question.  

    If you just to enable users to share an activity to Windows Live without setting-up your service, you can point your users to profile.live.com/badge.  I describe this in more detain in the "Writing Activities to Windows Live via Badge" section above.

    If you wantt to bring-in a feed of your own activities on a service (without the service doing any set-up via http://manage.dev.live.com/) right now, there's functionality for a basic RSS or Atom feed at: profile.live.com/.../Add.aspx

    I'm not currently aware of any apps/services that have been written for Windows Live to ingest a generic Activity Streams feed, but I'm thinking it could be done pretty easily using functionality described in "Writing Activities to Windows Live via Feed" or "Writing Activities to Windows Live via API"

  • @chrismessina  Thanks very much.  I appreciate the positive feedback.  Kudos goes to many of my colleagues who have been supportive of Windows Live (and other teams like Windows Phone) embracing Activity Streams.

  • @Bruno Thank you.  If you develop something cool using Windows Live Activity Streams, please leave a comment.

  • @Brandon  It's a good photo of your cat :)

  • Binie
    1 Posts

    You presented a very general way to get data from the live account, the atom activity feed.

    However the other way around it seemed very windows live specific. Even the feed option required some specific actions from the remote site to integrate with live.

    Is there some other method that allows live users to directly consume an activitystreams from any remote sites without them having to do some live specific steps ahead?

    Wouldn't a simple atom activitystreams feed work out of the box?

  • Dude, this is a seriously epic post. Nice work — this is great Rob!

  • Nice post!

    Very illustrative :)

  • Hey! That's my cat! LOL :-)