Вернуть список друзей текущего пользователя Facebook PHP

Я работаю над приложением Facebook, которое позволит пользователям голосовать за свои любимые фотографии на основе фотографий профилей своих друзей. Я знаю, как отображать изображения, но не знаю, как получить список идентификаторов друзей текущего пользователя. Мое приложение написано на PHP. Это последнее, что мне нужно, чтобы завершить приложение. Любая помощь будет здорово!


Это мой код: (просто для отображения каждого идентификатора пользователя на странице)

<?php
include_once 'facebook.php';
$apikey = 'API KEY HERE';
$secretkey = 'SECRET KEY HERE';

$fbObj = new Facebook($apikey, $secretkey);

$myuid = $fbObj->require_login();

$friends = $fbObj->api('$myuid/friends');
echo $friends;
?>

Этот код вызывает следующую ошибку PHP:

PHP Fatal error:  Call to undefined method Facebook::api() in /home/zach/public_html/Majik/animated.php on line 10

person Zac Brown    schedule 31.10.2010    source источник


Ответы (2)


Если вы можете использовать Graph - тогда это легко

https://graph.facebook.com/me/friends

Дополнительные сведения см. по адресу: http://developers.facebook.com/docs/reference/api/user

После этого вы можете перебирать список пользователей и использовать

https://graph.facebook.com/<user_id>/picture

для отображения изображения пользователя.

person zerkms    schedule 01.11.2010
comment
Я пробовал это, но мне нужен токен авторизации. Сначала я подумал, что это мой API-ключ, но это не сработало. И, используя эту ссылку, как мне отобразить идентификатор пользователя на странице? - person Zac Brown; 01.11.2010
comment
@Zachary Brown: тогда тебе нужно научиться работать с Graph. Вы можете начать обучение с github.com/facebook/php-sdk. - person zerkms; 01.11.2010
comment
Токен авторизации создается OAuth, а не ключом или секретом API. Чтобы OAuth сгенерировал токен, вам нужно войти в систему и поговорить с сервером :) Совет @zerkms, чтобы проверить правильность PHP-библиотеки. - person Tudor; 01.11.2010
comment
Хорошо, я использовал строку кода, которую нашел в сети, чтобы попытаться получить и распечатать токен, но он либо не печатает токен, либо токен возвращается пустым. Я добавил его к своему исходному сообщению выше. - person Zac Brown; 01.11.2010
comment
@Zachary Brown: :-S ты смотрел мою ссылку? Библиотека PHP SDK обрабатывает все токены автоматически!! Не стоит даже думать о них — просто используйте этот SDK. - person zerkms; 01.11.2010
comment
@zerkms Да, есть. Но для вызова по-прежнему требуется токен. Мне нужно предоставить токен, чтобы получить список. - person Zac Brown; 01.11.2010
comment
Моя проблема в том, что токен, который возвращает Facebook, не работает, когда я звоню, чтобы получить список друзей. - person Zac Brown; 01.11.2010
comment
@Zachary Brown: еще раз: если вы используете PHP SDK, который я дал, тогда вам не следует заботиться о каких-либо токенах. Эта библиотека делает все автоматически. Покажите нам, как вы выполняете запрос списка друзей. - person zerkms; 01.11.2010
comment
@zerkms, я добавил вызов, который использую для получения списка друзей, в конец исходного поста выше. Все, что я могу найти на нем, требует добавления токена аутентификации к URL-адресу. - person Zac Brown; 01.11.2010
comment
@Zachary Brown: с чем вы выполняете этот запрос? Вручную с помощью curl/sockets? Или с официальным Facebook PHP SDK? Если у вас недостаточно опыта для реализации протокола OAuth v2, почему бы вам не взять готовую к работе официальную библиотеку? - person zerkms; 01.11.2010
comment
Я все еще новичок в написании приложений для Facebook, просто подумал, что кто-то здесь сможет помочь. Меня очень интересует готов к работе что-нибудь, можете ли вы предоставить более подробную информацию? Я предпочел бы учиться на работающем коде, чем часами играть с неработающим кодом. :) - person Zac Brown; 01.11.2010
comment
ПОНЯТНО! Я понял, как получить токен, теперь мне просто нужно знать, как получить данные из URL-адреса друзей, разобрать его и повторить идентификатор каждого пользователя. Идеи? - person Zac Brown; 01.11.2010
comment
@ Zachary Brown: я все еще настаиваю на использовании официального php sdk ;-) Существует пример каталога с образцом сценария. - person zerkms; 01.11.2010
comment
Я использую официальный PHP SDK от Facebook. Я скачал его с гитхаба. - person Zac Brown; 01.11.2010
comment
@Zachary Brown: $friends = $fb->api('me/friends'); - так вы можете получить друзей текущего пользователя. - person zerkms; 01.11.2010
comment
Я пробовал... и это ошибка PHP в журналах сервера: Неустранимая ошибка PHP: вызов функции-члена api() для не-объекта в /home/zach/public_html/Majik/animated. php в строке 11 - person Zac Brown; 01.11.2010
comment
@Zachary Brown: хорошо, ты создал $fb объект? - person zerkms; 01.11.2010
comment
Да, только я назвал его $fbobj: $fbobj = new Facebook($apikey, $secretkey); - person Zac Brown; 01.11.2010
comment
@Zachary Brown: обновите свой вопрос, указав фактический php-код, с которым вы сейчас работаете. - person zerkms; 01.11.2010
comment
@Zachary Brown: 1. не может быть, чтобы $fbObj->require_login(); работало нормально, а $fbObj->api(...) — нет. Я не верю. 2. вместо этого используйте «мои/друзья». Это всегда относится к друзьям текущего пользователя. - person zerkms; 01.11.2010
comment
@Zachary Brown: кстати, вы можете связаться со мной по скайпу (мое имя здесь совпадает с никнеймом) или по электронной почте (его можно найти в моем резюме). Сейчас у меня мало свободного времени, чтобы помогать. - person zerkms; 01.11.2010
comment
@zerkms, это может показаться невозможным, но я думаю, что это может быть очевидно. Я попытался заменить идентификатор пользователя на мой, но это все равно не решило проблему. Я также исправил опечатку и опубликовал обновленное сообщение об ошибке. - person Zac Brown; 01.11.2010
comment
@ Zachary Brown: но это все еще не решило проблему --- конечно, не исправит. Это просто более правильный способ запросить нужные вам данные. Кстати, а как насчет var_dump($fbObj); прямо перед require_login() и сразу после? - person zerkms; 01.11.2010

скопируйте файл facebook api в тот же каталог, из которого вы работаете

person Richard Boyewa    schedule 03.07.2011