Archive for November, 2007

Pet Peeve: Forced Invitation Pages

November 28, 2007

I’ve tried out a couple dozen Facebook apps and I’ve started dividing them into two groups:

  • Decent Apps
  • Manipulative Bastards

Manipulative Bastards are really easy to spot because they all share one tactic in common.  When you first install the app, you are taken directly to the invitation page.  You haven’t even used the app yet, and it is telling you to recommend it to your friends.  This falls cleanly into the “selfish jerks” type of broken.  (See Seth Godin’s Seven Types of Broken (Gel 2006).)

Most apps that use these types of tactics are copying other apps written by Manipulative Bastards.  They don’t know better or don’t care; they just want something that makes money.

The original Manipulative Bastards know exactly what they’re doing, because they all read Robert Cialdini’s Influence — a landmark text on how people can be persuaded (for better or worse) and how to avoid being manipulated.  Unfortunately for consumers, almost every marketing professional has read it but very few consumers have.  The problem here is that these app marketers haven’t read Seth Godin’s Permission Marketing and probably never even heard of Seth Godin.  Manipulation, even though few people understand the degree to which they’re being manipulated, is still felt at a subconscious level.  Something doesn’t feel right.  And in a world where your competitors are a click away, forcing your agenda on someone else is a gamble (it’s either win-lose or lose-lose).  However, if you’re able to help someone fulfill their agenda in a way that also helps you, then you’re destined for greatness.

Are you guilty of forced invitation pages?  Here’s a hint: if you use anything other than bypass=”cancel” in your fb:multi-friend-selector tag, you are being manipulative.  “skip” and “step” (‘Skip This Step’) imply an unnecessary solicit-invitations step while the user is trying to do something else.  Stop it.


My Questions

November 26, 2007

Most Facebook apps are viral for the sake of being viral.  Sad but inevitable in this kind of environment.

I think that the My Questions app is a good counter-example, being viral in a much more meaningful way than other apps because it is used to start conversations.  But it’s also less viral than other apps because it forces people to think and be creative.  Sad but true.

Cannot Remove the Profile Box

November 21, 2007

Unfortunately, it looks like it isn’t possible (for now) to remove the profile box once it has been added (i.e. set for the first time.) Setting the profile FBML to ” “, or an HTML comment, results in a “No content to display.” message.

This is mentioned as a feature request on the Profile.setFBML wiki page.

P.S. I am starting to dislike WordPress’s rich text editor. I’ve had to wrestle with font sizes, manually insert paragraph tags and go through an indirect clipboard feature just to paste without formatting. I don’t want to mess with formatting; I just want all my text to be the same size!

Infinite Session Keys

November 21, 2007

Note to self: Infinite session keys are specific to individual Facebook applications, so when developing multiple Facebook apps you need one infinite session key per app.

Also, the infinite session key you are using goes away if that user uninstalls the app. The user is usually you, and you’re likely to run into this problem when you are adding and removing the app to test that behavior, then all of a sudden your app is broken for everyone.

I solve this situation by dynamically reassigning the infinite session key to the current user’s session key (if fb_sig_expires==0) when the default infinite session key is invalid. Eventually I will see the log entry and use the new session key. No failures occur on the user side.

So why use infinite session keys at all? Not all Facebook REST calls are in direct response to a webapp request. E.g. periodically and asynchronous updates. To make these calls, a valid session key must be provided but there is no webapp request with an associated Facebook session to refer back to.

Testing Facebook Apps

November 20, 2007

I am a zealot when it comes to testing, so naturally the idea of updating an app and crossing my fingers hoping it will work is unacceptable.  I was tempted, for a moment, to write a Facebook simulator/container webapp for testing my Facebook apps under development.  Then I got wise and decided to simply set up a new, legitimate, Facebook app for the sole purpose of testing an app under development.


I’m rather proud of this little hack, since I even figured out how to get Facebook to talk to my app under development on my development machine at home.  (I used a combination of ssh remote port forwarding and Apache proxying.)  With a few tweaks I can point to any of the apps under development.

Callback URLs

November 20, 2007

Note to self: callback URLs should end with “/”, not “/index.html”