OpenInteract2::Action::FlickrFeed - OpenInteract2 action to retrieve a Flickr feed and display it through a template


First, you need to register your type; in your website's conf/server.ini:

 flickr = OpenInteract2::Action::FlickrFeed

Next, reference the action type in your package's conf/action.ini:

 type         = flickr
 title        = My Flickr Photos
 feed_id      = 62037332@N99
 template     = myapp::flickr_feed
 cache_expire = 30m

Now you can deposit the results of your feed married to your 'myapp::flickr_feed' template:

 [% OI.action_execute( 'my_flickr' ) %]

You can also add it as a box:

 [% OI.box_add( 'my_flickr' ) %]


This is a simple extension of OpenInteract2::Action::RSS which grabs interesting data out of the Atom/RSS Flickr feed and makes them available to your template. So in addition to the 'feed' variable you also have access to an array 'photos' which contains a number of hashrefs with the following keys:

  • link: URL to the full page of this photo

  • title: Title of this photo

  • img_src: URL to small photo

  • width: Image width (pixels)

  • height: Image height (pixels)

So you can do something like this in your template:

 Recent photos:<br /> 
 [% FOREACH photo = photos %]
   <a href="[% %]"
      title="[% photo.title %]"><img src="[% photo.img_src %]"
                                     width="[% photo.width %]"
                                     height="[% photo.height %]" /></a> <br />
 [% END %]


To make this happen you can define the following properties in your action:

feed_id (required)

This is the ID of your feed. To find it just browse to your Flickr home page and find the 'RSS 2.0' or 'Atom' links toward the bottom. They'll look something like this:

The value following the id parameter is what you want; in this case it's '62037332@N00'.

template (optional; default is defined in OpenInteract2::Action::RSS)

Specify the template used to display your photos.

feed_format (optional; default 'atom_03')

Define the 'format' to be passed in the URL. By default this is 'atom_03' and you'll probably never need to change it. (If you have philosophical objections to Atom you can use 'rss_200'.)

cache_expire (optional but strongly recommended)

Same as OpenInteract2::Action::RSS

num_photos (optional; default 0, which means display all)

Number of photos to display; by default we show all of them. You can also control this from your template if you wish.





Copyright (C) 2005 by Chris Winters

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Chris Winters, <>