F8 First Impressions
Submitted by dave on Thu, 2010-04-22 02:30.
I spent the day at F8, facebook's developer conference. As expected, they announced some changes. And I've been thinking about the effects these will have on Drupal for Facebook.
As anyone who follows this knows, Facebook is not afraid to make fairly drastic changes to their APIs. Whenever they do, my feelings are a mix of frustration (because a big change means some earlier work is essentially wasted) but also relief (because the new APIs fix something that really needed fixing). I won't dwell on the frustration... Here's what I think is good.
First (actually in no particular order), they've embraced oauth as a means to authenticate Facebook Connect users. It's nice they've embraced a standard (even if they collobarated with other companies to create it, and maybe its not the standard you'd prefer). But what I really like is saying goodbye forever to the nasty batch of half-baked cookies that Facebook Connect currently shoves down the throat of your site. (Hey that analogy really works!) Instead of those cookies, a site needs merely manage a single auth token, and we have control over how we do it.
Next, I like their new protocols for querying data. What they call the "Open Graph". Replacing a mix-up of APIs, FQL queries and such, we now have a consistant scheme where HTTP Gets return JSON data; HTTP Posts can set data; and the URL in both cases determines the data being accessed. In practice, we'll still use a client library built on this, but the library will be quite small and much easier to understand. The same auth token mentioned earlier determines exactly which data the application will be able to read and write. There's even some ability to programatically inspect which fields are available. So for instance if you need to know what fields an Event has that a Group does not, you can find out via a query (which knowing facebook will be more up to date than the documentation - oh wait I forgot no dwelling on my frustration).
And here's a big change that may affect a lot of sites: It's now possible to add features such as a Like Button, Activity Stream, and Recommendations to a site without even implementing Facebook Connect. That's right you don't need to create and manage an application, yet you still get social features right on your pages. With this level of integration, you never learn anything about the user or even what they like on your site. But the links are still posted to facebook and friends can follow one another around your site. So you don't really get much additional data, but you may get a viral effect and more visitors to your pages. Its also easier to implement than Facebook Connect. All in all a very good idea on Facebook's part. Some people will feel a possible invasion of privacy here, but I don't really see much new along those lines.
Lastly, Facebook is embracing a very RDFa-esque style of meta tags. Pages with these tags get enhanced features when users interact with them. For example clicking the Like Button on an IMDB page will not only post to the user's wall that they like "Ghostbusters", it will also add "Ghostbusters" to their list of favorite movies. These meta tags are what tell Facebook that the thing being liked is a movie, in this case.
Many of the new changes are cool, and I look forward to supporting them in my Drupal for Facebook project. The first step is to include the newer client library and javascript library now available from facebook. I plan to make these changes and more in the 3.0 release of the modules. Soon I'll post a roadmap to drupalforfacebook.org, with details about those changes and more.

