Вам необходимо расширенное разрешение read_stream для вашего пользователя. http://developers.facebook.com/docs/authentication/permissions/
Если вы делаете это во время активного пользовательского сеанса (например, не используете расширенное разрешение offline_access), тогда чтение обновлений становится довольно тривиальной задачей.
Пример (с использованием php):
<?php
require 'facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'YOUR APP ID',
'secret' => 'YOUR APP SECRET',
'cookie' => true,
));
try
{
$user_feed = $facebook->api('/me/home/');
/**
* You now have the users's news feed, you can do with it what you want.
* If you want to prune it for friends only...you need to do a little more
* work..
**/
$friend_only_feed = array();
if (!empty($user_feed['data']))
{
$user_feed_pagination = $user_feed['paging'];
$user_feed = $user_feed['data'];
$friends = $facebook->api('/me/friends', 'GET');
$friend_list = array();
if (!empty($friends['data']))
{
$friends = $friends['data'];
foreach ($friends as $friend)
{
$friend_list []= $friend['id'];
}
}
$friend_only_feed = array();
foreach ($user_feed as $story)
{
if (in_array($story['from']['id'], $friend_list))
{
$friend_only_feed []= $story;
}
}
}
}
catch (FacebookApiException $e)
{
/**
* you don't have an active user session or required permissions
* for this user, so rdr to facebook to login.
**/
$loginUrl = $facebook->getLoginUrl(array(
'req_perms' => 'publish_stream'
));
header('Location: ' . $loginUrl);
exit;
}
print_r($friend_only_feed);
Это должно охватывать получение новостной ленты пользователей и получение всех их сообщений от их друзей (исключая обновления страниц). Если у вас нет доступа, он перенаправит пользователя на страницу входа и предоставит вам доступ.
Стоит также отметить, что стандартная конечная точка home
возвращает вам только последние 25 историй. Если вам нужно вернуться дальше, нажмите paging
в ответе на Facebook, чтобы сделать несколько запросов, чтобы вернуться дальше, или вы можете передать массив методу api (), сообщая Facebook, что вы хотите увеличить лимит. 1013 *
<?php
$user_feed = $facebook->api('/me/home/', 'GET', array(
'limit' => 500
));