Goal:
Consolidate the feeds from my Flickr, WordPress, Del.icio.us, etc accounts
Solution:
Use Yahoo! Pipes
Intended Audience:
Pipes newbies
Steps:
Create a pipe
- Go to http://pipes.yahoo.com and log in, or create an account if you don’t already have one
- Click the “Create a pipe” button
- In the editor, click and drag a “Fetch Feed” object onto the stage
- Open a new browser tab or window, head over to http://flickr.com/, and log in, or create an account
- Click on the “Your photostream” link to view your photostream
- Scroll to the bottom of the page and copy the “Latest” RSS feed URL
- Switch back to the Pipes editor and paste the Flickr URL into the text field in the “Fetch Feed” object on the stage
- On the bottom on the “Fetch Feed” object, there is a circular attachment point. Click on it an drag to start forming a new pipe
- Drag the pipe to the attachment point on top of the “Pipe Output” object at the bottom of the stage.
- Release the pipe when the “Pipe Output” attachment point glows.
- Click the “Save” button to name and save your new pipe
- Click the “Back to my Pipes” link next to the save button
- Click on the name of your pipe in the list of your pipes. This will display the output of your pipe.
- Click the “More Options” link and then “Get as RSS” in the drop-down. This will open the RSS feed in your browser if you’re using Safari or Firefox.
Build page
- Following an example from Rasmus Lerdorf’s Open Hack talk (http://talks.php.net/show/hack08/8), use simplexml to parse the RSS feed:
<?php $url = ''; //e.g. http://pipes.yahoo.com/pipes/pipe.run?_id=gIBkHK_V3RGpmv5oBRNMsA&_render=rss $xml = simplexml_load_file($url); $num_items = count($xml->channel->item); for($i = 0; $i channel->item[$i]->title; $date = $xml->channel->item[$i]->pubDate; $desc = $xml->channel->item[$i]->description; $link = $xml->channel->item[$i]->link; echo " <div>"; echo " <h3><a href='$link'>$title</a></h3> "; echo "$date"; echo "$desc"; echo "</div> "; }
- Go back to the browser tab displaying the output from your pipe and copy the URL
- Paste this URL into your index.php file as the value for the variable “$url”
- Change the beginning of the URL from ‘feed://…’ to ‘http://…’
- Load your page and you should see the output defined above. Note: var_dump the ‘$xml’ object to see the other available fields.
Extend pipe
- Back in the Pipes editor, drag another “Fetch Feed” object onto the stage
- Copy and paste another RSS feed into it
- From under the “Operators” heading in the list on the left, drag out a “Union” object
- Run the pipes from the two “Fetch Feed” objects into the union and pipe the output to the “Pipe Output” object
- To add more feeds, drag out additional “Fetch Feed” objects and connect them to the union
Just testing everything out!
Please let me know if you run into any issues