Получение списка друзей Facebook с последним API
Я использую самая последняя версия Facebook SDK (что позволяет подключиться к чему-то, называемому "graph API", хотя я не уверен). Я адаптировал пример кода Facebook, чтобы подключиться к Facebook, и это работает... но я не могу получить список моих друзей.
$friends = $facebook->api('friends.get');
это создает сообщение об ошибке: "фатальная ошибка: Uncaught OAuthException: (#803) некоторые из запрошенных вами псевдонимов не существуют: друзья.бросают в /mycode в/facebook.PHP на линии 543"
не знаю, почему это или что это значит. Может ли кто-нибудь сказать мне правильный синтаксис (для последнего API Facebook), чтобы получить список друзей? (Я попробовал " $friends = $facebook - >api - >friends_get (); "и получить другую ошибку," фатальная ошибка: вызов функции-члена friends_get () на не-объекте в /mycode/example.php on line 129".)
Я могу подтвердить, что до этого момента в моем коде все в порядке: я подключен к Facebook с действительным сеансом, и я могу получить свою информацию и просто сбросьте его на экран... т. е. этот код отлично выполняется перед неудачными друзьями.зов:
$session = $facebook->getSession();
if ($session) {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
}
print_r($me);
10 ответов
это живая версия 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>';
}
?>
получение друзей, таких как @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>';
}
просто головы для тех, кто натыкается на этот вопрос, используя v2.0 API Graph: это больше не будет работать. В v2.0, calling /me / friends возвращает только список друзей человека, которые использовать приложение:
- для просмотра друзей текущего пользователя требуется маркер доступа пользователя с разрешением user_friends.
- это вернет только друзей, которые использовали (через Facebook Login) приложение, сделавшее запрос.
- если друг человека отклоняет разрешение user_friends, этот друг не будет отображаться в списке друзей для этого человека.
Если вы хотите использовать конечную точку REST,
$friends = $facebook->api(array('method' => 'friends.get'));
else если вы используете api graph, то используйте,
$friends = $facebook->api('/me/friends');
в последней версии Facebook sdk facebook отключил функцию, которая позволяет вам получить доступ к списку друзей из-за соображений безопасности ... проверьте документацию, чтобы узнать больше ...
вместо этого используйте 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/
использование CodeIgniter OAuth2 / 0.4.0 sparks,
В Auth.файл php,
$user = $provider->get_user_info($token);
$friends = $provider->get_friends_list($token);
print_r($friends);
и в Facebook.php файл под провайдером, добавьте следующую функцию,
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.
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>';