If I open Twitter's RSS feed for 'me & friends' in a web browser, it's got a Channel item which contains some general details and lots of Item children that contain the posts.

If I open the same URL with PHP4's CURL functions (or normal fopen(), for that matter, but I've since set allow_url_fopen false) the page appears perfectly formed except all the Items are missing.

Works fine for the feed here.

Weird.

Update: You can recreate the fault by adding a Twitter RSS feed (not sure if the Atom one does it) to Google Reader. I'd be interested to know if other feed readers are affected.

Further Update: IE does it too, as does wget on one of my Linux boxes. So far Firefox is the only client I've seen that can get the full file.
Perhaps weirder still is that their Atom feed seems to do exactly the same.

Must be something going on with the request headers, or something. Let's see what Twitter Support say...

Yet more Updating: Fixed it. I had Twitter set to showing updates to friends only. Firefox was considered logged in, so it got the full feed: everything else got the headers but no items.

I've pointed it out to the Twitter support folks.

If only it were that simple: Still not right. I now have an Atom feed of my friends' entries, but I'm only in it from Firefox. The RSS feed still has nothing in it.

The good news is that if I did have access to the feed I wanted, my script to reformat it so I can put it in the sidebar would make short work of it.

Last update: Honest.
The API documentation cleared it up: just about everything at Twitter needs authentication. I've added authentication to the script and it works fine. Now I just need to build it into a Nucleus plugin.

I made a couple of suggestions to the Twitter support folks, namely that requiring authentication on the RSS feeds for non-protected users seems a bit much, and that if they do require authentication they should give the 'needs authentication' error rather than just serving me an empty page.

I wonder whether they'll listen.