通过Javascript Facebook API获取Facebook用户信息,以及当前用户的好

  在使用APP之前需要先生成Facebook APP ID 这不必多说。

  生成Facebook APP ID之后 在javascript中 初始化Facebook信息

  而且我定义了一些我需要获取获取数据的全局变量

  <script language="javascript" type="text/javascript">

  //这是我们要获取的信息变量

  var facebookId;

  var facebookName;

  var facebookProfileImg;

  var facebookBooks;

  var facebookMovies;

  var facebookMusic;

  var facebookLocations;

  var friendFbIds = '';

  var facebookEmail;

  FB.init({

  appId: '138343092941586', //这里设置你申请的APP ID

  status: true,

  cookie: true,

  xfbml: true,

  oauth: true

  });

  </script>

  复制代码

  初始化完成之后,可以通过某一个事件来触发获取Facebook信息的功能。(我使用了id的点击事件)

  <script language="javascript" type="text/javascript">

  $('#invite')。click(function(){

  FB.getLoginStatus(checkResponse);

  });

  //checkResponse方法是用来检测当前用户是否登陆的。

  function checkResponse(response) {

  if (!response.authResponse) {

  //scope是获取权限的意思,你可以获取其他的例如:offline_access, publish_stream等权限

  FB.login(handleSessionResponse,{ scope:'email'});

  } else {

  //这个方法就是获取Facebook用户信息的方法

  retrieveProfiles();

  }

  }

  //次方法是用来处理Facebook登陆的回话相应。

  function handleSessionResponse(response) {

  if (!response.authResponse) {

  return;

  } else {

  //这个方法就是获取Facebook用户信息的方法

  retrieveProfiles();

  }

  }

  </script>

  复制代码

  下面这里才是重点,根据上面获取的Facebook信息,通过FacebookAPI查询Facebook的数据库即可得到相关的信息

  <script language="javascript" type="text/javascript">

  //用来循环获取Facebook 好友ID

  Object.size = function(obj) {

  var size = 0;

  for (var key in obj) {

  if (obj.hasOwnProperty(key)) size++;

  }

  return size;

  }

  function retrieveProfiles() {

  // 通过Facebook API 查询用户信息

  FB.api({ method: 'fql.query', query: 'SELECT uid,email, name, pic_square, books, movies, music, current_location FROM user WHERE uid=me()' }, function(response) {

  // fetch the status from response

  var user = response[0];

  if (user == undefined) {

  $('span.loading')。replaceWith('<span>Sorry, please try again.</span>');

  } else {

  facebookId = user.uid;

  facebookName = user.name;

  facebookProfileImg = user.pic_square;

  facebookMovies = user.movies;

  facebookMusic = user.music;

  facebookBooks = user.books;

  facebookEmail = user.email;

  facebookLocations = user.current_location;

  //获取当前用户的Facebook好友

  FB.api({ method: 'fql.query', query: 'SELECT uid2 FROM friend WHERE uid1 = ' + facebookId }, function(data) {

  console.log(data);

  //注意这里用到了Object.size方法

  for (var i = 0; i < Object.size(data); i++) {

  friendFbIds = friendFbIds + "'" + data[i].uid2 + "'";

  if (i != Object.size(data) - 1) {

  friendFbIds += ',';武汉仁济精神病治疗

  }

  }

  console.log(friendFbIds);

  console.log("facebookName"+facebookName);

  console.log("facebookEmail"+facebookEmail);

  console.log("facebookProfileImg"+user.pic_square);

  console.log("facebookMovies"+user.movies);

  console.log("facebookMusic"+user.music);

  console.log("facebookBooks"+user.books);

  console.log("facebookLocations"+user.current_location);

  });

  }

  });

  }

  </script>

  复制代码http://www.dztxn.com/space/?342/log/829

转载于:https://my.oschina.net/u/2297790/blog/382401

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值