Facebook Cookbook - Jay Goldman [60]
Control (tags that control what gets displayed on your page, such as fb:visible-to-owner)
The other way to slice and dice is based on the area of functionality they affect (see all of the tags grouped this way on http://wiki.developers.facebook.com/index.php/FBML):
Dialog (display a Facebook-style dialog, either pop-up or contextual)
Editor display (display a Facebook-style form with labels)
Embedded media (embed media such as Flash, Silverlight, MP3s, etc.)
Forms (enable images or text links to act as form submission controls)
Message/Wall attachments (preview attachments to messages or Wall posts)
Misc (things that don’t fit somewhere else)
Notifications and requests (content for the Notification and Request integration points)
Page navigation (navigation widgets, including dashboards and tabs)
Profile-specific (FBML that works only in Profile Boxes)
Status messages (display Facebook-style errors and messages)
Tools (assorted tools, including various friend selectors and Google Analytics)
User/Groups (display information related to users)
Visibility on Profile (control who can see what on Profiles)
Wall (emulate a Wall-like environment in your app)
Discussion
One of the biggest differences between HTML and FBML is the context of the logged-in users. Tags in HTML always render the same content, regardless of who looks at them, so there’s never a need to think about what someone will see depending on which state she’s in. FBML is different, and the first grouping provides a handy way to remember which tags are affected by context and which ones aren’t.
Social tags are very aware of who’s logged in and what they can see. For example, the fb:name tag will render the specified user’s full name to someone who is logged into Facebook, but only that user’s first name to someone who isn’t. The output of sanitization tags generally doesn’t change from user to user, but the content they add to a page might (e.g., standard HTML