Получение списка друзей Facebook с последним API
-
26-09-2019 - |
Вопрос
я использую Самая последняя версия SDK Facebook (который позволяет подключаться к чему-то, называемую «график API», хотя я не уверен). Я адаптировал пример код Facebook, чтобы позволить мне подключиться к Facebook и это работает ... Но я не могу получить список моих друзей.
$friends = $facebook->api('friends.get');
Это производит сообщение об ошибке: «Фатальная ошибка: uncaught oauthException: (# 803) Некоторые из псевдонимов, которые вы запрашивали, не существуют: Friends.get брошены в /mycode/Facebook.php на линии 543"
Никаких признаков почему то есть или что это значит. Может кто-нибудь подскажет правильный синтаксис (для последних API Facebook), чтобы получить список друзей? (Я пробовал «$ friends = $ Facebook-> api-> friends_get ();» и получите другую ошибку, «Fatal Error: вызов функции элементов forms_get () на не объекте в /mycode/example.php на линия 129 ".)
Я могу подтвердить, что до этого момента в моем коде все в порядке: я подключен к Facebook с действительным сеансом, и я могу получить мою информацию и выбросить его на экран только ... т.е. этот код выполняется идеально перед неудачными друзьями .Пожалуйста, позвоните:
$session = $facebook->getSession();
if ($session) {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
}
print_r($me);
Решение
Я думаю, что это то, что вы хотите:
$friends = $facebook->api('/me/friends');
Другие советы
Это живая версия 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). Вы можете увидеть фотографии друзей, как это:
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: это больше не будет работать. В V2.0 звонка / мне / друзья возвращают только список друзей человека, которые Также используйте приложение:
- Токен доступа пользователя с разрешением user_friends требуется для просмотра друзей текущего человека.
- Это вернет только любые друзья, которые использовали (через Facebook Login) приложение, делающее запрос.
- Если друг человека отказывается от разрешения user_friends, этот друг не покажет в списке друзей для этого человека.
Если вы хотите использовать остальную конечную точку,
$friends = $facebook->api(array('method' => 'friends.get'));
еще, если вы используете график API, то используйте,
$friends = $facebook->api('/me/friends');
В недавней версии Facebook SDK Facebook отключил функцию, позволяющую вам получить доступ к одному списку друзей из-за соображений безопасности ... Проверьте документацию, чтобы узнать больше ...
Используйте FQL вместо этого, это как SQL, но для таблиц данных Facebook и легко охватывает данные, вы хотите сделать. Вам не придется использовать все эти вызовы THE / 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 OAUTT2 / 0.4.0 искры,
в файле 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>';
Заголовок («тип контента: текст / HTML; Charset = UTF-8»);
Ввод на вашей странице.