-
Notifications
You must be signed in to change notification settings - Fork 20
The Facebook Platform Is A Trainwreck, Example #871
There are few APIs more painful to work with than the Facebook API. As the author of a couple deeply integrated Facebook applications and an opensource Java integration library, I suffer with it almost every day. The problem is not that the API is buggy and inconsistent. The problem is that Facebook doesn't care if the API is buggy and inconsistent.
I could pick from hundreds of examples from the last few years, but here's why Facebook wasted a couple hours of my valuable time today:
The Javascript SDK lets you subscribe to events 'auth.login' and 'auth.logout'. They are documented like so:
- auth.login - fired when the user logs in
- auth.logout - fired when the user logs out
Pretty simple, right? Of course it isn't. In fact, auth.logout fires when you log out and when you log in. Depending on how complicated your authentication system is, it may take you a couple hours of debugging to figure this out.
You might consider logging this as a bug in Facebook's issue tracker. Lo and behold, someone already tried this:
- https://developers.facebook.com/bugs/291382317558560
- https://developers.facebook.com/bugs/148271701940380
According to Facebook, this broken behavior is By Design. And watch Facebook's typical issue response flow:
- Close as Won't Fix without comment.
- Ignore developer comments asking for clarification.
- Developer posts a duplicate bug asking for clarification.
- Close as By Design with a cryptic explanation.
- Ignore developer comments asking for clarification.
It's worth looking at the "explanation": If you look at the actual source instead of the minified source, the param "c" is really called "both", so that's totally correct. This is by design. This makes absolutely no sense to anyone outside of the Facebook bubble: Facebook doesn't publish non-minified source for their javascript SDK. They used to, but this project appears to be all but abandoned. The production source has diverged significantly from the github source, which has been annotated "We have no plans to update this repository until December 2011." Well it's xmas, where's my f*cking gift?
I wish this was an isolated incident, but nearly every experience I've had with the Facebook platform is equally unsatisfying. Bugs are closed or simply ignored. Of the issues which get a response, nearly always the first round is "need a repro case" even though the bug is *clearly* spelled out in the description. Do I need to drive down to Palo Alto and type it in on your keyboard?
Another trick that Facebook's platform support engineers have learned is that bugs in "need repro" state automatically close after a week. So even when you provide shell scripts that a 12 year-old could copy-paste to demonstrate the issue, all they need to do is wait you out and your little problem will simply go away. Of course, when I tried to search for one of my issues to illustrate this point, here's what I get:
Sigh. Every little step is a struggle.
Edit: Second bug was a link to the wrong issue. Fixed.