如何使用Javascript SDK V2.0获取Facebook用户的朋友个人资料图片

Pie*_*NOU 5 javascript facebook facebook-graph-api facebook-graph-api-v2.0

我正在使用Facebook API V2.0 JavaScript SDK创建一个网站,我想显示用户朋友的个人资料图片.我已经设法使用图形API显示我的个人资料图片,但如果我登录了我的应用程序(我是管理员),我无法获得所有朋友的ID.如果我有身份证,我将能够显示他们的个人资料照片.

图浏览器中,我检查了所有权限(用户数据权限+扩展权限).我注意到如果我切换到API V1.0,我得到了朋友的许可,这正是我想要的.

此外,我在Facebook开发人员的应用程序中添加了一些权限>应用程序详细信息> App Center列出的平台>配置应用程序中心权限.(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();">
Run Code Online (Sandbox Code Playgroud)

加载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"/>');
  });
  }
Run Code Online (Sandbox Code Playgroud)

但是,假设包含我所有朋友信息的数组是空的(参见图像:http://www.screencast.com/t/W02GaOm3h)

Kim*_*röm 3

如果您需要的只是他们的图像,可以在“taggable_friends”范围中找到。但是,请注意,此字段非常有限(根据设计),并且您需要 Facebook 进行额外审核才能将其呈现给普通用户。

它包含了:

  • 可标记的 ID。这是一个具有明确标记目的的 id;它不能用于识别用户身份或以其他方式从其个人资料中收集信息。
  • 一个名字。用户的名字和姓氏。
  • 一张图片,包含常见的相关领域。网址、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);
      });
    }
    
    Run Code Online (Sandbox Code Playgroud)

相关阅读:
https://developers.facebook.com/docs/graph-api/reference/v2.0/user/taggable_friends https://developers.facebook.com/docs/opengraph/using-actions/v2.0 -标记朋友和提及朋友部分

免责声明:我已经与这个问题斗争了好几天,但没有真正能够提及标签。我提交的使用 taggable_friends 作为用户的全面、可导航列表的提交被拒绝了,我推测(推测哈!)这是因为我没有进行实际标记。几天后,当我澄清并重新提交我的 Facebook 审核请求后,我会再讨论这个问题。

- 编辑 -

看来我最初提交被拒绝的原因是因为我使用了特殊的开发 url,并且没有足够清楚地指出为什么使用设置下设置的 url 是不够的。这次我在提交的一般描述和分步注释中清楚地指出并解释了这一推理。总而言之,您提交的所有内容都要格外清晰;您对为什么需要此权限、他们如何访问它等的推理。只是为了确保在浏览时不会错过它。