程序员小威

导航

获取FaceBook上用户的信息

废话说多了没意思,直接一个代码就够了:

<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <title>获取用户信息</title>
        <script type="text/javascript" src="lib/jquery/jquery-1.3.2.min.js">
        </script>
        <style>
            #get {
                background: green;
                width: 100px;
                height: 20px;
                margin: 0 0 0 0;
                color: white;
            }
        </style>
    </head>
    <body>
        <input id='get' value='GetUsersInform' type='button'/>
        <div id="fb-root">
        </div>
        <script>
            var facebookId;
            var facebookName;
            var facebookProfileImg;
            var facebookBooks;
            var facebookMovies;
            var facebookMusic;
            var facebookLocations;
            var friendFbIds = '';
            var facebookEmail;
            window.fbAsyncInit = function(){
                FB.init({
                    appId: '140497919399626'
                });
                var get = $('#get');
                get.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();
                }
            }
            
            //用来循环获取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) {
                        alert('Sorry, please try again!!');
                    }
                    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){
                            //注意这里用到了Object.size方法
                            for (var i = 0; i < Object.size(data); i++) {
                                friendFbIds = friendFbIds + "'" + data[i].uid2 + "'";
                                if (i != Object.size(data) - 1) {
                                    friendFbIds += '&nbsp;&nbsp;&nbsp;';
                                }
                            }
                            //alert(friendFbIds);
                            var friendId = $("#friendId");
                            friendId.html('The Id of your friends are:' + friendFbIds);
                            var facebook_name = $("#facebookName");
                            facebook_name.html('Your FaceBook name is:' + facebookName);
                            $("#facebookEmail").html('Your FaceBook Email is:' + facebookEmail);
                            $("#facebookLocations").html('Your FacebookLocations is:' + facebookLocations);
                            /*alert("facebookName" + facebookName);
                            alert("facebookEmail" + facebookEmail);
                            alert("facebookProfileImg" + user.pic_square);
                            alert("facebookMovies" + user.movies);
                            alert("facebookMusic" + user.music);
                            alert("facebookBooks" + user.books);
                            alert("facebookLocations" + user.current_location);*/
                        });
                    }
                });
            }
            // Load the SDK Asynchronously
            (function(d){
                var js, id = 'facebook-jssdk';
                if (d.getElementById(id)) {
                    return;
                }
                js = d.createElement('script');
                js.id = id;
                js.async = true;
                js.src = "//connect.facebook.net/en_US/all.js";
                d.getElementsByTagName('head')[0].appendChild(js);
            }(document));
        </script>
        <p id='friendId'></p>
        <p id='facebookName'></p>
        <p id='facebookEmail'></p>
    </body>
</html>

posted on 2012-01-10 15:32  程序员小威  阅读(1080)  评论(2)    收藏  举报