博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过Javascript Facebook API获取Facebook用户信息,以及当前用户的好友
阅读量:4647 次
发布时间:2019-06-09

本文共 2910 字,大约阅读时间需要 9 分钟。

作者:

来源:
最近为客户做一个新的Facebook APP页面.
说一下如何获取Facebook用户的信息,例如facebookID,name,pic_square,movies,email,current_location等信息.
在使用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的点击事件)

  1. <script language="javascript" type="text/javascript">
  2. $('#invite').click(function(){
  3.         FB.getLoginStatus(checkResponse);
  4. });
  5. //checkResponse方法是用来检测当前用户是否登陆的.
  6. function checkResponse(response) {
  7.     if (!response.authResponse) {
  8.         //scope是获取权限的意思,你可以获取其他的例如:offline_access, publish_stream等权限
  9.         FB.login(handleSessionResponse,{ scope:'email'});
  10.     } else {
  11.         //这个方法就是获取Facebook用户信息的方法
  12.         retrieveProfiles();
  13.     }
  14. }
  15. //次方法是用来处理Facebook登陆的回话相应.
  16. function handleSessionResponse(response) {
  17.     if (!response.authResponse) {
  18.         return;
  19.     } else {
  20.         //这个方法就是获取Facebook用户信息的方法
  21.         retrieveProfiles();
  22.     }
  23. }
  24. </script>

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

  1. <script language="javascript" type="text/javascript">
  2. //用来循环获取Facebook 好友ID
  3. Object.size = function(obj) {
  4.         var size = 0;
  5.         for (var key in obj) {
  6.                 if (obj.hasOwnProperty(key)) size++;
  7.         }
  8.         return size;
  9. }
  10. function retrieveProfiles() {
  11.     // 通过Facebook API 查询用户信息
  12.     FB.api({ method: 'fql.query', query: 'SELECT uid,email, name, pic_square, books, movies, music, current_location FROM user WHERE uid=me()' }, function(response) {
  13.         // fetch the status from response
  14.         var user = response[0];
  15.         if (user == undefined) {
  16.             $('span.loading').replaceWith('<span>Sorry, please try again.</span>');
  17.         } else {
  18.             facebookId = user.uid;
  19.             facebookName = user.name;
  20.             facebookProfileImg = user.pic_square;
  21.             facebookMovies = user.movies;
  22.             facebookMusic = user.music;
  23.             facebookBooks = user.books;
  24.                         facebookEmail = user.email;
  25.             facebookLocations = user.current_location;
  26.             //获取当前用户的Facebook好友
  27.             FB.api({ method: 'fql.query', query: 'SELECT uid2 FROM friend WHERE uid1 = ' + facebookId }, function(data) {
  28.                 console.log(data);
  29.                 //注意这里用到了Object.size方法
  30.                                 for (var i = 0; i < Object.size(data); i++) {
  31.                     friendFbIds = friendFbIds + "'" + data[i].uid2 + "'";
  32.                     if (i != Object.size(data) - 1) {
  33.                         friendFbIds += ',';
  34.                     }
  35.                 }
  36.                                 console.log(friendFbIds);
  37.                                 console.log("facebookName"+facebookName);
  38.                                 console.log("facebookEmail"+facebookEmail);
  39.                 console.log("facebookProfileImg"+user.pic_square);
  40.                                 console.log("facebookMovies"+user.movies);
  41.                                 console.log("facebookMusic"+user.music);
  42.                                 console.log("facebookBooks"+user.books);
  43.                                 console.log("facebookLocations"+user.current_location);
  44.             });
  45.         }
  46.     });
  47. }
  48. </script>

这样用户的信息就已经取得了,大家也可以在Facebook的APP 帮助文档查找相关用户信息字段

转载于:https://www.cnblogs.com/xoaomihu/archive/2013/01/17/2864207.html

你可能感兴趣的文章
[18]Debian Linux Install GNU GCC Compiler and Development Environment
查看>>
JAVA多线程
查看>>
ACE(Adaptive Communication Environment)介绍
查看>>
delphi 更改DBGrid 颜色技巧
查看>>
python编码问题
查看>>
POJ 2031 Building a Space Station
查看>>
面向对象1
查看>>
编程开发之--java多线程学习总结(5)
查看>>
register_globals(全局变量注册开关)
查看>>
as3调用外部swf里的类的方法
查看>>
如何让 zend studio 10 识别 Phalcon语法并且进行语法提示
查看>>
任意阶幻方(魔方矩阵)C语言实现
查看>>
视频教程--ASP.NET MVC 使用 Petapoco 微型ORM框架+NpgSql驱动连接 PostgreSQL数据库
查看>>
第五次作业
查看>>
织梦教程
查看>>
杭电多校 Harvest of Apples 莫队
查看>>
java 第11次作业:你能看懂就说明你理解了——this关键字
查看>>
C/C++心得-结构体
查看>>
函数名作为参数传递
查看>>
apt-get for ubuntu 工具简介
查看>>