Доступ к обновлениям друзей в Facebook - PullRequest
2 голосов
/ 27 апреля 2011

Как получить разрешение на просмотр обновлений от моих друзей через API Facebook?Вики dev не очень помогают мне дальше ... Мне просто нужен пример кода ...

1 Ответ

2 голосов
/ 28 апреля 2011

Вам необходимо расширенное разрешение 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
));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...