There’s been a lot of excitement the last few weeks over FriendFeed, the new lifestreaming service that lets you pull together all the different services you publish to into a single feed.
I’ve tried FriendFeed and it works great, but why ask someone else to do something you could do yourself? The combination of Movable Type and the Action Streams plugin make rolling your own lifestream easy.
The Action Streams plugin was created by Six Apart a few months ago. It allows you to pull data from a variety of different web services into your blog. You can use it to create a sidebar — or a separate page — listing your most recent Flickr photos, Digg stories, Twitter updates, and more. Action Streams supports over 50 different sites, and additional sites can be added through plugins.
Getting Started
Install Action Streams just like any other MT plugin. One extra thing you’ll need to do, if you haven’t done it already, is set up a cron task for MT’s run-periodic-tasks tool. After the plugin is installed, go to your account profile in MT. You’ll find a new link to Other Profiles. On that page, you can add each service that you use, choosing whether or not to include that site’s data in your stream.
At this point, you can either create a new blog that will publish your action stream, or integrate it into your existing blog.
Creating a New Action Streams blog
This is the easier of the two options. From the blog drop-down at the top left of any page, choose Create a New Blog, then select the Action Streams template set. Give your new blog a name and choose where to publish it, then click Create.
When your new blog is created, go to the plugin settings, click on the Action Streams plugin, and enable rebuilding of indexes when new actions are found. We do this so your action stream will be updated with any new actions every time the cron job you set up earlier runs.
And that’s all there is to it. Publish to Flickr, Twitter, or wherever else you create content, and your new action stream will always show your latest happenings. It even includes an RSS feed.
Integrating with Your Existing Blog
This method is only slightly more trouble. We’re going to add your action stream to your sidebar. The plugin comes with an example template for creating a sidebar widget, but that code is wrong. Here is a corrected version:
Create a new index template, and copy the contents of the file above into the template. Name it Action Stream, and have it output to actionstream.inc. Save and publish this template, then try viewing the page in your browser to make sure it published.
Now, go to your widgets and create a new one. What we want to do here is include your action stream in such a way that it’s always up-to-date on every page it appears on, even if that page hasn’t been republished recently. If you’re publishing dynamically this isn’t an issue, you can just include it like this:
<mt:include file="/actionstream.inc">
But if you’re publishing static files you’ll need to do a type of include that doesn’t involve MT. If you publish your site as .php files, you can do this:
<?php include($_SERVER['DOCUMENT_ROOT'] . '/actionstream.inc'); ?>
Or, if your server supports SSI, you can do this:
<!--#include virtual="/actionstream.inc" -->
Regardless of which method you choose, name this widget Action Stream and save it. Go to Design -> Widget Sets from your menu, click on Sidebar, and drag the new Action Stream widget into your sidebar widget set. Publish your site, and your Action Stream should be in your sidebar. As with the other option, you’ll need to go to your plugin settings and enable automatic rebuilding for your action stream to stay up-to-date.
If you also want an RSS feed, there’s an example template for that in the plugin, and it is correct.
So there you have it — your own FriendFeed-type feed, on your own site. Granted, FriendFeed does offer more options, but this allows you to keep your readers on your site, and lets you style it any way you want. Be sure to check out the Movable Type Plugins Directory for plugins that add additional services to Action Streams.