Setting Info Sections

Problem

My app has collected some fantastic info about my users, and I’d like to add it to their Info tabs as structured data.

Solution

The mid-2008 Profile redesign introduced the ability for applications to add sections to the new Info tab, accomplished through a new family of four API calls and a new FBML tag.

Setting an Info section is fairly simple, though the nested arrays can be a little confusing:

$info_fields = array(
    array(
        'field'=>'Favorite Naps',
        'items'=>array(
            array(
                'label'=>'Disco Nap',
                'link'=>'http://apps.facebook.com/superdisconapping/define/disconap'),
            array(
                'label'=>'Super Disco Nap',
                'link'=>'http://apps.facebook.com/superdisconapping/
define/superdisconap'),
            array(
                'label'=>'Power Nap',
                'link'=>'http://apps.facebook.com/superdisconapping/
define/powernap'))),
    array(
        'field'=>'Favorite Napping Locales',
        'items'=>array(
            array(
                'label'=>'Car',
                'link'=>'http://apps.facebook.com/superdisconapping/locale/car'),
            array(
                'label'=>'Office',
                'link'=>'http://apps.facebook.com/superdisconapping/
locale/office'))));

$infoResult = $facebook->api_client->profile_setInfo('Super Disco
 Napping', 1, $info_fields, 12345);

If you read down from the top, info_fields is an array that contains a field name and an array of items. Each item contains, at a minimum, a label and a link, but can also contain image, description, and sublabel fields (the example here keeps it simple and uses only label and link). The actual call to Profile.setInfo() accepts a name for the ...

Get Facebook Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.