Javascript-获取一张用户的随机个人资料图片'的朋友在脸书上

Javascript - get one random profile picture of user's friends on facebook

本文关键字:资料图片 朋友 获取 随机 用户 一张 Javascript-      更新时间:2023-12-14

我试图在脸书上随机显示用户朋友的个人资料图片,我自己也试图弄清楚,但它破坏了登录按钮,无法工作。我在Javascript文件中实现的代码有什么问题?

这是我尝试过的代码:

    /* make the API call */
function getInfo() {
    FB.api('/friend-list-id/members', 'GET', {
      fields: 'first_name,last_name,name,id,picture.width(100).height(100)'
  }, function (response) {
    console.log(response);//Check the response in console
    document.getElementById('status').innerHTML = "<img src='" + response.picture.data.url + "'><br>" + response.name;
    }); 

Javascript:

window.fbAsyncInit = function() {
  FB.init({
    appId: '',
    xfbml: true,
    version: 'v2.5'
  });
  FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
      document.getElementById('status').innerHTML = 'We are connected.';
      document.getElementById('login').style.visibility = 'hidden';
    } else if (response.status === 'not_authorized') {
      document.getElementById('status').innerHTML = 'We are not logged in.'
    } else {
      document.getElementById('status').innerHTML = 'You are not logged into Facebook.';
    }
  });
};
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {
    return;
  }
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
// login with facebook with extra permissions
function login() {
  FB.login(function(response) {
    if (response.status === 'connected') {
      document.getElementById('status').innerHTML = "<img src='http://www.webdevelopmenthelp.net/wp-content/uploads/2015/04/loading.gif' />";
      document.getElementById('login').style.visibility = 'hidden';
      getInfo();// Invoke it here
      name();
    } else if (response.status === 'not_authorized') {
      document.getElementById('status').innerHTML = 'We are not logged in.'
    } else {
      document.getElementById('status').innerHTML = 'You are not logged into Facebook.';
    }
  }, {
    scope: 'email'
  });
}
// getting basic user info
function getInfo() {
  FB.api('/me', 'GET', {
    fields: 'first_name,last_name,name,id,picture.width(100).height(100)'
  }, function(response) {
    console.log(response);//Check the response in console
    document.getElementById('status').innerHTML = "<img src='" + response.picture.data.url + "'><br>" + response.name;
  });

    /* make the API call */
function getInfo() {
    FB.api('/friend-list-id/members', 'GET', {
      fields: 'first_name,last_name,name,id,picture.width(100).height(100)'
  }, function (response) {
    console.log(response);//Check the response in console
    document.getElementById('status').innerHTML = "<img src='" + response.picture.data.url + "'><br>" + response.name;
    });     
}   

提前Thanx

在函数登录中添加作用域user_friends

{scope: 'email,user_friends'}

功能好友

function getFriendRandom(cb) {
  FB.api('/me/friends',{
      fields: 'name,id,picture.width(100).height(100)'
    }, function (response) {
    if (response && !response.error) {
     var random = Math.floor(Math.random()*response.data.length);
     cb(response.data[random].picture.data.url);
    }
  });
}
//usage
getFriendRandom(function(image){
  console.log(image);
});

API v2.0及更高版本仅返回安装此应用程序的好友。summary中的total_count表示好友总数,包括尚未安装该应用程序的好友。

阅读文档https://developers.facebook.com/docs/graph-api/reference/v2.5/user/friends