We are building a new website at work using Drupal 7, and one of the requirements is integration of work’s Facebook and Twitter streams. The easiest way to do this, of course, is with the Drupal Aggregator and the RSS/Atom feeds both Facebook and Twitter provide.
The problem is, while Twitter’s RSS/Atom feed is standards compliant, Facebook’s is not, by any stretch. The main problem for us being, Facebook provides relative URLs linking to posts rather than Absolute URLs, as required by the RSS standard. The relevant part being here:
RSS places restrictions on the first non-whitespace characters of the data in <link> and <url> elements. The data in these elements must begin with an IANA-registered URI scheme, such as http://, https://, news://, mailto: and ftp://. Prior to RSS 2.0, the specification only allowed http:// and ftp://, however, in practice other URI schemes were in use by content developers and supported by aggregators. Aggregators may have limits on the URI schemes they support. Content developers should not assume that all aggregators support all schemes.
Others have also had this problem (the problem being URLs that should be “http://www.facebook.com/USER/post/xxxxxxx” turn into “http://www.mysite.com/USER/post/xxxxxxx”), and rather than resign to the fact that it’s just not going to work, I decided to spend some time to actually make it work for me.