Получение списка друзей Facebook с последним API

Я использую самую последнюю версию Facebook SDK (которая позволяет подключаться к тому, что называется «графический API», хотя я не уверен). Я адаптировал пример кода Facebook, чтобы я мог подключиться к Facebook, и это работает... но я не могу получить список своих друзей.

$friends = $facebook->api('friends.get');

Это выдает сообщение об ошибке: «Неустранимая ошибка: Uncaught OAuthException: (#803) Некоторые из запрошенных вами псевдонимов не существуют: friends.get добавлен в /mycode/facebook.php в строке 543»

Понятия не имею, почему это так и что это значит. Может ли кто-нибудь сказать мне правильный синтаксис (для последней версии API Facebook), чтобы получить список друзей? (Я попробовал «$friends = $facebook->api->friends_get();» и получил другую ошибку: «Неустранимая ошибка: вызов функции-члена friends_get() для необъекта в /mycode/example.php на строка 129").

Я могу подтвердить, что ДО этой точки в моем коде все в порядке: я подключен к Facebook с действительным сеансом, и я могу получить свою информацию и вывести ее на экран просто... т.е. этот код отлично выполняется до неудачных друзей .получить вызов:

$session = $facebook->getSession();
if ($session) {
    $uid = $facebook->getUser();
    $me = $facebook->api('/me');
}
print_r($me);

person Eric    schedule 30.09.2010    source источник


Ответы (11)


Я думаю, это то, что вы хотите:

$friends = $facebook->api('/me/friends');
person nfvs    schedule 30.09.2010
comment
случайно ты не знаешь, как получить чье-то изображение профиля с помощью вызова API? что-то вроде... $friends = $facebook-›api('/idofosmefriend/picture'); И есть какая-то документация со всеми этими вызовами? Спасибо! - person José Joel.; 09.10.2010
comment
@nfvs, ты знаешь, как я могу получить доступ к friends_hometown? - person alex; 16.07.2011
comment
Это больше не работает с Graph API v2 или даже с устаревшими приложениями Graph API v1. См.: developers.facebook.com/docs/graph- api/reference/v2.0/user/ Это вернет только тех друзей, которые использовали (через вход в Facebook) приложение, сделавшее запрос. - person dwp4ge; 01.05.2014

Это живая версия PHP-кода, чтобы привлечь друзей из Facebook.

<?php
    $user = $facebook->getUser();


    if ($user) {
        $user_profile = $facebook->api('/me');
        $friends = $facebook->api('/me/friends');

        echo '<ul>';
        foreach ($friends["data"] as $value) {
            echo '<li>';
            echo '<div class="pic">';
            echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
            echo '</div>';
            echo '<div class="picName">'.$value["name"].'</div>'; 
            echo '</li>';
        }
        echo '</ul>';
    }
?>
person Yash Kumar    schedule 02.04.2012
comment
В документации сказано, что он показывает друзей, которые также используют ваше приложение. Я попробовал код выше и получил этот результат. См. их ссылку: (Проверьте раздел read_friendlists) developers.facebook.com/docs /facebook-логин/разрешения/v2.2 - person Web_Developer; 06.01.2015

Завести таких друзей, как описывает @nfvs, — хороший способ. Он выводит многомерный массив со всеми друзьями с атрибутами id и name (упорядочены по id). Вы можете увидеть фотографии друзей, как это:

foreach ($friends as $key=>$value) {
    echo count($value) . ' Friends';
    echo '<hr />';
    echo '<ul id="friends">';
    foreach ($value as $fkey=>$fvalue) {
        echo '<li><img src="https://graph.facebook.com/' . $fvalue->id . '/picture" title="' . $fvalue->name . '"/></li>';
    }
    echo '</ul>';
}
person geoffa    schedule 20.10.2010
comment
работал! спасибо, только одна строка вызвала у меня ошибку .... во втором цикле foreach ... я изменил ее на следующую, чтобы она работала для меня, echo '‹li›‹img src=graph.facebook.com' . $fvalue-›id . '/название изображения=' . $fvalue-›имя . '/›‹/ли›'; - person Stevanicus; 11.05.2011
comment
он работает в соответствии с вашим предложением и обновляется в коде. спасибо Стеваникус и Джеффа - person Elankeeran; 03.11.2011

Просто предупреждение для всех, кто наткнется на этот вопрос, используя v2.0 Graph API: это больше не будет работать. В версии 2.0 вызов /me/friends возвращает только список друзей человека, которые также используют приложение:

  • Для просмотра друзей текущего человека требуется токен доступа пользователя с разрешением user_friends.
  • Это вернет только тех друзей, которые использовали (через вход в Facebook) приложение, сделавшее запрос.
  • Если друг человека отклоняет разрешение user_friends, этот друг не будет отображаться в списке друзей этого человека.
person Mads Foli Bjerre    schedule 30.05.2014
comment
Есть ли способ получить список всех друзей с помощью Graph API 2.0? - person Eric; 30.05.2014

Если вы хотите использовать конечную точку REST,

$friends = $facebook->api(array('method' => 'friends.get'));

иначе, если вы используете API графика, используйте

$friends = $facebook->api('/me/friends');
person rampr    schedule 10.08.2011

в последней версии facebook sdk facebook отключил функцию, позволяющую вам получить доступ к одному списку друзей из соображений безопасности ... проверьте документацию, чтобы узнать больше ...

person user2244112    schedule 22.05.2015

Вместо этого используйте FQL, он похож на SQL, но для таблиц данных Facebook и легко охватывает запросы данных, которые вы хотите сделать. Вам не нужно будет использовать все эти вызовы /xx/xxx/xx, просто знайте интересующие вас таблицы и столбцы.

$myQuery = "SELECT uid2 FROM friend WHERE uid1=me()";
$facebook->api( "/fql?q=" . urlencode($myQuery) )

Отличные интерактивные примеры на http://developers.facebook.com/docs/reference/fql/

person Michael Vain    schedule 18.11.2011

Используя искры CodeIgniter OAuth2/0.4.0,

в файле Auth.php,

$user = $provider->get_user_info($token);

$friends = $provider->get_friends_list($token);
print_r($friends);

и в файле Facebook.php в разделе Provider добавьте следующую функцию:

    public function get_friends_list(OAuth2_Token_Access $token)
    {
            $url = 'https://graph.facebook.com/me/friends?'.http_build_query(array(
                    'access_token' => $token->access_token,
            ));
            $friends = json_decode(file_get_contents($url),TRUE);

            return $friends;
    }

prints the facebenter code hereook friends.
person ShivarajRH    schedule 21.05.2013

friends.get

Функция для получения списка друзей

И да, это лучше всего

    $friends = $facebook->api('/me/friends');

    echo '<ul>';
    foreach ($friends["data"] as $value) {
        echo '<li>';
        echo '<div class="pic">';
        echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>';
        echo '</div>';
        echo '<div class="picName">'.$value["name"].'</div>'; 
        echo '</li>';
    }
    echo '</ul>';
person Deepak Kumar    schedule 02.01.2014

https://graph.facebook.com/v1.0/me/friends?limit=$%7Blimit%7D&access_token=$%7BaccessToken%7D

этот API работал для меня, попробуйте это

person Rahul Somaraj    schedule 26.06.2021

header('Тип контента: text/html; charset=utf-8');

ввод на вашей странице.

person allyson    schedule 16.05.2011