Как получить фотографию профиля друзей пользователя Facebook с помощью Javascript SDK V2. 0


Я создаю веб-сайт с помощью Facebook API V2. 0 JavaScript SDK и хотел бы отобразить фотографии профиля друзей пользователя. Мне удалось отобразить свою фотографию профиля с помощью graph API, но я не могу получить идентификатор всех моих друзей, если я вошел в свое приложение (я администратор). Если у меня есть удостоверение личности, я смогу показать их фотографию в профиле.

ВОбозревателе графиков я проверил все разрешения (права доступа к пользовательским данным + расширенные права доступа). У меня есть заметил, Если я перейду к API В1.0, я получу разрешение друзьями, который является точно, что я хочу.

Кроме того, я добавил несколько разрешений для своего приложения в Facebook developers > App details > App Center Listed Platforms > Configure app center permissions. (user_friends + friends_birthday + friends_religion_politics + friends_relationships + friends_relationship_details + friends_location + friends_photos + friends_about_me)

Пока мой html выглядит так:

<fb:login-button scope="public_profile,email,user_friends,read_friendlists" onlogin="checkLoginState();">

После загружая Facebook SDK, у меня есть:

function getUserFriends() {
  FB.api('me/friends?fields=first_name,gender,location,last_name', function (response) {
    console.log('Got friends: ', response);
    $("#friendslist").html('<img src="https://graph.facebook.com/'+ response.id+'/picture?type=large"/>');
  });
  }

Однако массив, который предположительно содержит всю информацию о моих друзьях, пуст (см. изображение: http://www.screencast.com/t/W02GaOm3h )

2 5

2 ответа:

Если все, что вам нужно, - это их изображение, его можно найти в области "taggable_friends". Однако обратите внимание, что это поле очень ограничено (по дизайну) и что вам требуется дополнительный обзор Facebook, чтобы представить его среднему пользователю.

Он содержит:

  • taggable id. Это идентификатор с явной целью пометки; он не может быть использован для идентификации пользователя или иного сбора информации из его профиля.
  • имя. Первый и последний пользователь имя.
  • Изображение с общими связанными полями. Url, is_silhouette, высота и ширина.

    function getUserFriends() {
      FB.api('me/taggable_friends', function (response) {
        console.log('Got friends: ', response.data);
        $("#friendslist").html('<img src="'+response.data[0].picture.data.url+'"/>');
        // maybe an $.each as well
        // var friendMarkup = '';
        // $.each(response.data, function(e, v) {
        //   friendMarkup += '<img src="' + v.picture.data.url +'" alt="'+ v.name +' picture"/>';
        // }
        // $("#friendlist").html(friendMarkup);
      });
    }
    

Связанные reading:
https://developers.facebook.com/docs/graph-api/reference/v2.0/user/taggable_friends https://developers.facebook.com/docs/opengraph/using-actions/v2.0 - пометка друзей и упоминание разделов друзей

Отказ от ответственности: я боролся с этой проблемой в течение нескольких дней, не имея возможности действительно упомянуть-tag. Мой предложение использовать taggable_friends в качестве всеобъемлющего, навигационного списка для пользователя было отклонено, и я спекулирую (спекуляция Хо!) это было потому, что я не делал никаких фактических меток. Я вернусь к этому через несколько дней, когда уточню и повторно отправлю запрос на отзыв в Facebook.

-- Edit --

Похоже, что причина, по которой мое первоначальное представление было отклонено, заключалась в том, что я использовал специальный url-адрес разработки и не указал достаточно ясно, почему этого было недостаточно чтобы использовать url-адрес, установленный в разделе Настройки. На этот раз я ясно указал и объяснил это рассуждение как в общем описании моего представления, так и в пошаговых примечаниях. Короче говоря, будьте исключительно ясны в своем представлении обо всем; ваши рассуждения о том, почему вам нужно это разрешение, как они могут получить к нему доступ и т. д. Просто чтобы убедиться, что он не пропущен, если бегло прочитать.