文档章节

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

 爱尚论坛
发布于 2015/03/04 10:41
字数 536
阅读 1218
收藏 2

  在使用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

© 著作权归作者所有

粉丝 0
博文 22
码字总数 18644
作品 0
武汉
私信 提问
纯 JavaScript 实现的 OAuth 认证

引言 现在,很多的应用程序都在使用HTML和JavaScript, 这是一个非常明智的选择,让你跟上目前的趋势. 一些主要实体工具因为客户端验证和授权等原因提供了API. 当前网站对于验证的一个广受欢迎...

oschina
2013/05/02
7.7K
7
Cocos 2d-x 游戏引擎全面支持 Facebook 平台

在 2014年10月28日的Cocos开发者大会上,触控科技宣布,在Facebook的协助和支持下,触控科技对旗下开源引擎Cocos 2d-x进行了更新,正式启动对Facebook平台的全面支持。今后,Cocos 2d-x的开发...

oschina
2014/10/29
1K
1
揭秘第三方跟踪器是如何利用Facebook登录页面跟踪用户的

        到目前为止,我已经陆续发布了如何通过网络跟踪器从网页、浏览器密码管理器和表单输入中盗取信息的文章。   今天,我会继续发布我最近新发现的如何利用第三方脚本进行的隐私...

嘶吼RoarTalk
2018/04/27
0
0
白鹭引擎 5.1.9 调整 Facebook Instant Games 接入方式

上周三,Facebook 推出一系列隐私保护新措施,旨在让用户更容易地查看和访问该社交网络对他们所掌握的数据,并且根据自己的需求进行相应的调整。随着 Facebook 隐私政策的调整,原有的 Inst...

白鹭科技
2018/04/04
1K
1
Cocos2d-JS v3.0 RC3 发布!

Cocos2d-JS v3.0 RC3 发布! Cocos2d-JS v3.0 RC3 提供 Facebook SDK Beta;改进了 API 参考;大大提升系统稳定性。 下载: cocos2d-js-v3.0-rc3.zip For Web Development Only Online API ......

oschina
2014/08/30
2.3K
6

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
10
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
9
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
9
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部