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

作者: 东来东往

来源: http://www.dldw.net/archives/25.html

最近为客户做一个新的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 帮助文档查找相关用户信息字段

http://developers.facebook.com/docs/reference/fql/user/

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写Facebook自动发帖脚本是一项技术挑战,需要深入了解FacebookAPI和开发文档。以下是一个简单的300字回答,介绍如何编写这样一个脚本。 要编写一个Facebook自动发帖脚本,首先需要创建一个Facebook开发者账号,并获取访问API的权限。接下来,需要选择一个编程语言来编写脚本,如Python或JavaScript。 在脚本中,我们可以使用Facebook提供的Graph API来与其交互。首先,我们需要通过脚本获得一个有效的访问令牌,以便进行API调用。通过应用程序密钥和秘钥,我们可以从API获取此访问令牌。 接下来,我们可以使用API方法中的“/me/feed”端点来发布帖子。在请求中,我们需要添加访问令牌、消息内容和其他参数,如目标用户。可以选择性地添加图片或链接,以丰富帖子内容。 为了实现自动化,我们可以使用循环结构和定时器来设置定期发布帖子的时间间隔。可以根据需要调整时间间隔,保证帖子不会过于频繁地发布,以避免被视为垃圾信息。 另外,为了提高用户体验,我们可以使用脚本来提供帖子内容的个性化。可以根据用户的兴趣爱好、地理位置或其他参数,动态生成帖子内容。这可以通过调用其他API,如用户档案信息或天气API来实现。 最后,务必记住遵循Facebook开发者政策和准则,确保脚本的合法使用。应尊重用户的隐私和偏好,并避免滥用API接口。 总的来说,编写Facebook自动发帖脚本需要对FacebookAPI有一定的了解,并具备编程和数据处理的能力。通过合理的策略和技术,可以实现自动化发布帖子的需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值