使用facebook javascript API获取Facebook公开个人资料

时间:2014-05-25 16:42:40

标签: javascript facebook facebook-graph-api

我正在使用FB javascript并获取用户ID,图片,名称。但是我想获得其他细节,例如关于我,地点,教育等的公开信息。我的代码如下,

var all_results = [];
var fb_results = [];
(function(d, s, id){
    var js, fjs = d.getElementsByTagName(s)[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement(s); js.id = id;
    js.src = "//connect.facebook.net/en_US/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

window.fbAsyncInit = function() {
    FB.init({
      appId      : facebook_id,
      xfbml      : true,
      version    : 'v2.0',
      status : true
    });
    isFBLoaded = true;
};

FB.getLoginStatus(function(response) {
    if (response.authResponse) {
        fbUserId = response.authResponse.userID;
        token = response.authResponse.accessToken;
    }else{
        FB.login(function(response) {
            if (response.authResponse) {
                fbUserId = response.authResponse.userID;
                token = response.authResponse.accessToken;
            }else {
                     //console.log('User cancelled login or did not fully authorize.');
            }
        }, {scope: 'user_location'});
    },true);

    FB.getLoginStatus(function(response) {
        if (response.status != 'connected') {
            alert("Facebook Login is required.");
            return;
        }else{
            get_user_from_fb();
        }
    });
}


function get_user_from_fb(){
    FB.api(
        "https://graph.facebook.com/search?q="+ encodeURIComponent(user_name) +"&type=user","get","",function (response) {
            var n = 0;
            fb_results = [];
            var response_type = typeof(response.data);
            while(response_type!="undefined" ){
                var user_name = response.data[n].name;
                var user_id = response.data[n].id;
                var user_arr = [user_id,user_name];
                fb_results.push(user_arr);
                n++;
            }       
        }
    );
}
function get_user_full_details(){
    FB.api(
            user_arr[0]+"/picture/","get","",function (img_response){
                var temp_user = [user_arr[1],user_arr[0],img_response.data.url];
                all_results.push(temp_user);
            }
        );
    });
}

我修改了代码来缩短它。基本上有三件事,

  1. Facebook令牌,js loading等。

  2. 按用户在表单中输入的用户名获取用户列表(facebook用户ID,姓名)。

  3. 获取该用户的用户图像。 但我想获得其他公共细节,如位置,教育,关于我等等。

  4. 注意:我想了解不是FB.api('me',....) 的任何用户的详细信息 我想获取用户的公共基本信息。就像我可以看到直接访问 https://www.facebook.com/app_scoped_user_id/ {USER_ID} /约

    我只是喜欢,

    {
      "id": "user_id", 
      "first_name": "Amit", 
      "last_name": "Sharma", 
      "link": "https://www.facebook.com/app_scoped_user_id/user_id/", 
      "name": "Amit Sharma", 
      "updated_time": "2014-04-28T02:51:21+0000"
    }
    

    我无法获得任何用户的详细信息,我的应用设置也是

    年龄限制任何人(13岁以上)。

    您想让这个应用及其所有实时功能向公众开放吗? 是

    批准的项目 登录许可 电子邮件

    提供对该人的主电子邮件地址的访问权限。默认情况下会批准此权限。

    public_profile 提供对个人基本信息的访问,包括名字,姓氏,个人资料图片,性别和年龄范围。默认情况下批准此权限。 user_friends

    提供对同时使用您的应用的朋友列表的访问权限。默认情况下会批准此权限。

    以上都是启用(绿色图标)

0 个答案:

没有答案