Uncategorized

Atom feeds for Facebook and Twitter

My latest side projects provide Atom feeds for your Facebook news feed, your Twitter stream, or any Twitter list. You can use them to read your friends’ posts in an RSS/Atom feed reader instead of directly on Facebook or Twitter. Try them out!

Facebook used to provide RSS for the news feed, but they deprecated it a couple years ago and dropped it altogether a couple weeks ago. The only working solution I’ve found is JWZ’s facebook-rss.pl script, which works but isn’t very accessible.

Twitter also used to support RSS and Atom in their API, but they deprecated them when they announced the new API, and recently dropped them altogether. There’s a Yahoo Pipe that does the conversion, but it uses the old API and doesn’t authenticate, which the new API requires, so it won’t last long.

The source for both apps is on Github. The heavy lifting is done by my ActivityStreams bridge project. Enjoy!

Standard

34 thoughts on “Atom feeds for Facebook and Twitter

  1. Glad to see you are back to crankin away and being the whiz kid you are Ryu!

  2. Great timing! I was just looking for such a tool. I couldn’t seem to find anything else comparable, though I did find an article about a similar project a coupla’ years back on which facebook put the kibosh — so beware!

    I have a some feedback and requests.
    My feed reader is the browser-based tt-rss (which I’m new to — I may be missing something; I was just going to double-check your feed in Thunderbird, but unfortunately at just this moment it seems to be returning a “500 Internal Server Error”)

    1. 1) include the name of the poster in the article title
      Compare my official notification feed: (could also be improved on – namely redundant)
      … with your script’s news feed (not at all clear what’s going on from the headlines).
    2. Most posts’ pictures are missing for me. I waited a while for it to load, but nothing came through. … although SOME others DO.
    3. adding the ‘like’ feature would be great
    4. show user comments
    5. ability to add comments would be ideal

    I’d been thinking before of writing a PHP script to serve an RSS/Atom feed of facebook through loopback.

    Big thanks for the tool and for sharing the source. It’s my first visit to your page. You ARE prolific indeed. Sorry to read about your accident. Glad you’re doing better. Cheers!

  3. Damnit, I can’t seem to get it right. In the first comment my textual formatting got mangled. Couldn’t see a way to edit, and in my retry I forgot to sign my name. d-: Apologies.

  4. thanks for the feedback, casey! i’ll look into implementing some of those ideas today.

  5. notes for myself: i took a look at JWZ’s facebook-rss.pl, and it does a number of interesting things differently from my app:

    • it masquerades as facebook’s own iphone app so it can see posts from people who have blocked apps from seeing their posts.
    • it fetches checkins and people tagged in photos separately, which mine doesn’t yet do.
    • it looks like it explicitly includes posts from all of your friends, as opposed to using facebook’s ranking algorithm and your feedback, e.g. if you’ve ever said “only show important posts from this person” or “hide posts from this app.” mine intentionally includes facebook’s ranking and your feedback.

    i may add some of those to my app, but i don’t know if i’ll add all of them.

  6. Thanks for developing this! It works fine with the NewsGator reader, but when I tried it with SharpReader, I got a parsing error:

    Error parsing RSS XML: ‘georss’ is an undeclared namespace. Line 69, position 4.

    Could you add:
    xmlns:georss=”http://www.georss.org/georss”

    to the generated RSS feed?

    Thank you for considering this suggestion.

    • Scott Inrig, Ottawa, Canada.
  7. Hey, this is a great work, but both with the twitter and facebook apps I’m getting errors.

    On twitter: Could not create Twitter OAuth request token: TweepError(TweepError(HTTPError(),),)
    On facebook: 500 server error.

    Thanks a lot for this work, btw.

  8. i made facebook-atom handle facebook api errors and timeouts more gracefully, which should help there.

    i see your errors on twitter-atom, but i was able to generate feeds with a few app ids of mine, and twitter’s API didn’t tell me much about why it choked on yours, so i’m not sure. i’ll keep investigating.

  9. I see… I’m getting the same errors also with other IDs… Even if I put fake values, it gives me the very same error. This is weird.

  10. First off, congrats on your great work! Ever since both services dropped them I’ve been (occasionally) looking for alternatives. So when I saw your app I jumped onto it straight-away. Unfortunately I’m getting the very same errors already reported by Marco Trevisan above. Any update on that?

  11. thanks for the kind words, helle, and sorry for the trouble! i’ve been distracted with other projects for a while, but i’ve put this back on my todo list. i’ll investigate soon and post again when i have an update.

  12. Thank you for replying and looking into it. I’ve subscribed to the comment feed for this topic, so if there’s a need to provide additional info and/or testing I’d be happy to oblige.

    All the best with your projects!

  13. helle, i’ve started looking at this again. facebook-atom should work ok now. i’ll let you know when twitter-atom is updated.

  14. Hi Ryan,

    Thanks for creating this tool! Is the server tool currently down for the Twitter-atom feed?

    When I enter my API key and secret, I get a HTTP 500 Internal Server Error.

  15. hey mark! looks like you may have accidentally been including a + character at the beginning of your consumer secret. try without that and see if it works…?

  16. I am getting the same error on clicking “get my feed” or “get this lists feed” both

    “500 Internal Server Error
    The server has either erred or is incapable of performing the requested operation.

    Could not create Twitter OAuth request token: TweepError(TweepError(HTTPError(),),) “

    and no i am not using entering any “+” letter. Just copied the consumer and secret key from OAuth settings after creating an app with my twitter link

    Please help
    Thanks

  17. hi singh! finally got back to this. i was able to generate feeds just now with a test twitter account and oauth consumer, so i’m not yet sure what’s wrong. i’ll dig more and see what i can find.

  18. good question! there was/is, but it uses an internal-only API feature – the stream collection for Activities.list – so it was never fully public. (i wrote it while i was at google.)

    if that feature ever goes public, it’ll be trivial to support in activitystreams-unofficial by changing 'public' to group_id here and passing 'stream'. i’m not holding my breath, though.

    of course, that’s for your stream, ie posts from the people in your circles. if you just want a single person’s feed, there are lots of services and libraries that do that today, including activitystreams-unofficial.


  19. twitter list hint

    @Kevin sorry for the confusion! you’d enter KevinFitts/madness-network. usually the text box shows a hint when it’s blank:

    evidently your browser is older and doesn’t show it. i’ll add it to the page text too.

  20. Hi Ryan,

    this is an awsome service you develoed and provide. Thank you!

    However, I have trouble making in work.

    I try to get a Feed for the list Koenig_DGQ/internet-news
    The App will not generate a feed but says “Your Input has to follow the specified format”. It seems to be the minus in the list name that causes this. The Twitter URL is https://twitter.com/Koenig_DGQ/lists/internet-news though.

    When I try to get a Feed just for my Username I get a 500 internal Server error.

    I am using Chrome.

    Thanks for your help in advance,

    Chris

  21. @Chris thanks for the report! i’ve fixed both of those bugs, so you should be able to generate a feed for that list now. if it still complains, try refreshing. thanks again!

  22. Wow, that was quick. And it works like a charm. Thanks a lot, Ryan!

    Cheers,
    Chris

Leave a Reply

Your email address will not be published. Required fields are marked *