Доступ к друзьям пользователя через Facebook Graph API? - PullRequest
6 голосов
/ 13 июля 2010

Кто-нибудь успешно получил доступ к списку друзей пользователя через API Graph Facebook?

Я написал код для аутентификации пользователей на моем веб-сайте через API OAuth Facebook.Это работает великолепно;Я могу получить доступ к публичной информации, лайкам, интересам, действиям и т. Д. Я получаю доступ к этим точкам данных через следующий формат URL, где я заменяю «uid» действительным идентификатором (я использую uid вместо «я», потому что «я»не работает так, как рекламируется):

https://graph.facebook.com/uid?access_token=...
https://graph.facebook.com/uid/likes?access_token=...
https://graph.facebook.com/uid/interests?access_token=...
https://graph.facebook.com/uid/activities?access_token=...

Однако доступ к друзьям просто не даетРабота.URL,

https://graph.facebook.com/uid/friends?access_token=...

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

{
   "error": {
      "type": "OAuthAccessTokenException",
      "message": "An access token is required to request this resource."
   }
}

Примеры в Документах Graph API все работают, но покатокен доступа, сгенерированный на этой странице, имеет другой формат, чем мой.Я не уверен почему.Я выполнил их инструкции для тройника (и он работает для всего остального!).

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

Ответы [ 4 ]

7 голосов
/ 17 декабря 2010

Если пользователь подключается к вашему Приложению, вы можете получить его друзей следующим образом:

    $facebook = new Facebook(array(
                'appId' => 'xxxxxxxx',
                'secret' => 'xxxxxxx',
                'cookie' => true,
            ));

    // $session is only != null, when you have the session-cookie, that is set by facebook, after the user logs in
    $session = $facebook->getSession(); 

    // you dont get a list of friends, but a list, which contains other friendlists
    $friendsLists = $facebook->api('/me/friends');

    foreach ($friendsLists as $friends) {
      foreach ($friends as $friend) {
         // do something with the friend, but you only have id and name
         $id = $friend['id'];
         $name = $friend['name'];
      }
   }

Но у вас есть доступ только к идентификатору и имени друзей.

0 голосов
/ 13 июля 2010

Откуда вы берете, что друзья общедоступны?Часто задаваемые вопросы, на которые вы ссылаетесь:

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

Я не вижу упоминания о друзьях в этом пункте.

0 голосов
/ 20 июля 2010

Ошибка, которую вы видите, означает, что access_token не отправляется.Это также вероятно, почему /me работает для вас.Также вероятно, что, как только вы это исправите, ваши друзья будут отображаться так, как вы ожидаете.

0 голосов
/ 13 июля 2010

Сначала необходимо получить токен доступа.См .:

API Graph Facebook - получение токенов доступа

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...