Схема действий следующая:
Логинимся в Facebook собой, создаём на новое приложение. Никаких сложностей нет, главное чтобы оно создалось и вы смогли записать его appId и App Secret.
Данные из фейсбука получаем через Graph API - там можно получить много чего, нас интересует конкретно таймлайн, так что запрос будет выглядеть как "/yourname/feed", где yourname - ваше имя или название страницы (например, "vasyapupkin" или "chaosconstructions").
Всё было бы совсем элементарно, если бы не авторизация. Документация фейсбука известна своей понятностью, полнотой и частыми обновлениями, так что я лучше опишу всё своими словами :)
Авторизация потребуется в любом случае, кроме самых простейших, вида: https://graph.facebook.com/vasyapupkin (получаете только общие сведения о пользователе).
Чтобы получить feed, необходим access token. Они бывают разные. Токены приложений (состоят из комбинации appid и secret) вам не помогут. Нужен токен пользователя, которые бывают как минимум двух типов - короткоживущие и долгоживущие. Первые живут 2 часа, так что это не вариант (теоретически можно продлевать, но если пропустите - всё :). Вторые живут 60 дней - они-то нам и нужны.
Сразу скажу - нет способа получить "вечный токен". Раньше был (т.н. offline access), но недавно они решили, что это слишком жирно для разработчиков - пусть народ посуетится. Разработчики забегали, как тараканы на сковородке, т.к. пропала возможность для серверных частей стабильно получать по крону данные из фейсбука. В итоге, после изучения вопроса наиболее вменяемый вариант - получить 60 дневный токен и периодически его продлевать. Получаем его вводя в браузере url:
https://graph.facebook.com/oauth/authorize?type=user_agent&client_id=AppId&redirect_uri=http://www.yoursite.ru&scope=export_stream
(scope - это права, которые вам нужны. export_stream как раз для таймлайна, www.yoursite.ru - ваш сайт)
В ответ вам вылезет попап, где вы должны согласиться с предоставлением доступа к приложению.
После подтверждения попап закроется и произойдет редирект на:
http://www.yoursite.ru/#access_token=1A2DTFRmUFbUBAICTKOYdZCHbzpUKAZAtOJZA2QAXekjBAlSDMr7OaGuPAFxEnJBY2KDtRzQlyEATnBoZAbhjt9BOwjA24q2NptLkGVwGJgZDZD&expires_in=5142784&code=AQBcqzyrrYjDkMWJC83Igeg8owO4LHwscbtF8GSFGMq63XC0thKam0cyjsH20ea_dZC45IpH1xdG2179CpXBGfDBbTlX8Xm0smEfUCU15tkV5fx5_UkFSfR4T2sJZ2kTy-oACdTmjZxe97OHtVza5aAEk61rECdpSSgr1x5NJdxCVXX99bO71xnq68S5WhCZD13
Это и будет ваш токен. Его вы прописываете в код, который будет запускаться для выборки данных из фейсбука:
...
require 'facebook.php'; // лежит здесь: https://github.com/facebook/facebook-php-sdk
$facebook = new Facebook(array( $access_token = '1A2DTFRmUFbUBAICTKOYdZCHbzpUKAZ5tOJZA2QAXekjBAlSDMr7OaGuPAFxEnJBY2KDtRzQlyEATnBoZAbhjt9BOwjA24q2NptLkGVwGJgZD13';
$facebook->setAccessToken($access_token);
$data = $facebook->api('/vasyapupkin/feed'); // yourname - ваше имя или название страницы (из url)
echo('<pre>');
'appId' => '123457576954321',
'secret' => 'abcdef0d45da5a52f08abfd90fedccba',
));
print_r($data); // возвращается json с данными ленты, формат довольно очевидный
echo('</pre>');
...
Что делать через 60 дней? Это хороший вопрос.
На stackoverflow топиков на эту тему бесконечность - пример.
Насколько я понял, продлить автоматически его никак нельзя. Только вручную, как описано выше. Если узнаете другой способ, поделитесь.
Экспериментировать можно также в Facebook API Explorer (учтите, что кнопка Get Access Token даёт двухчасовой токен)
UPDATE:
Где-то ближе к концу 2012 года Facebook в очередной раз изменил правила игры (в документации это не отражено - и правда, зачем? :)
Смысл в том, что теперь там, где выше я пишу "это и будет ваш токен" - он теперь внезапно не 60 дневный, а обычный 2 часовой. На Stackoverflow народ придумывает всякие версии как с этим жить (легко гуглится по недокументированной setExtendedAccessToken), сходу можно предложить простой ручной вариант. Берется двухчасовой токен и подсовывается в следующий url:
https://graph.facebook.com/oauth/access_token?client_id=AppId&client_secret=AppSecret&grant_type=fb_exchange_token&%20fb_exchange_token=_2_hours_token_
В ответ получаем строчку с уже долгоживущим токеном вида:
access_token=_60_days_token_&expires=_expire_time_
Радуемся (не очень долго, я прогнозирую :)