O'Reilly logo

Facebook Cookbook by Jay Goldman

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Hiding Private Profile Content

Problem

Privacy is such an important concern on Facebook, and I want to make sure my application follows all of the rules and regulations so I respect my users and don’t get Terms of Service violations! How do I make sure I’m showing users only the Profile content from other users that they’re supposed to see?

Solution

The fb:if-can-see tag gives you full control over whether to display one user’s Profile content to another user. The simplest form is:

<fb:if-can-see uid="12345">You're allowed to see this</fb:if-can-see>

Discussion

The simplest case is probably not all that useful to you, since you’re probably more interested in a specific part of the Profile rather than the whole thing. Add a what parameter and include any one of the following: profile, friends, not_limited, online, statusupdates, wall, groups, photosofme, notes, feed, contact, email, aim, cell, phone, mailbox, address, basic, education, professional, personal, seasonal:

<fb:if-can-see uid="12345" what="friends">
    You're allowed to see <fb:name uid="12345" possessive="true" /> friends
    <fb:else>
        You're not allowed to see them.
    </fb:else>
</fb:if-can-see>

Note that you can’t chain the whats together, so you’ll have to nest fb:if-can-see tags if you want to check for more than one permission at a time:

<fb:if-can-see uid="12345" what="profile"> <fb:if-can-see uid="12345" what="friends"> You can see <fb:name uid="12345" possessive="true" /> profile and friends. </fb:if-can-see> </fb:if-can-see> ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required