按用户ID FB Api获取用户名和姓氏

时间:2013-05-21 22:12:12

标签: javascript asp.net-mvc facebook-graph-api

在Facebook API中,有哪种方法可以通过用户ID获取用户的姓名和姓氏?

我在ASP.NET MVC应用程序中使用FB API,我使用MultiFriendSelector让用户邀请朋友加入我的应用程序。我需要在选择这些朋友时,将它们保存在我的数据库中,以便他们可以访问我的页面。这是我到目前为止的代码。

    function sendRequestToRecipients() {
        var user_ids = document.getElementsByName("user_ids")[0].value;

        FB.ui({
            method: 'apprequests',
            message: 'Join my group on CodeShare!',
            to: user_ids
        }, requestCallback);
    }

    function sendRequestViaMultiFriendSelector() {
        FB.ui({
            method: 'apprequests',
            message: 'Join my group on CodeShare!'
        }, requestCallback);
    }

    function requestCallback(response) {
        if (response.request && response.to) {
            var request_ids = [];
            for (var i = 0; i < response.to.length; i++) {
                var fb_id = response.to[i];
                request_ids.push(fb_id);

                //// here I want to get the user's names and
                     surnames so that I can send them along with the id's..

                $.ajax({
                    url: '/Groups/SaveInvitedFriends',
                    type: 'POST',
                    data: { invitedFriends: request_ids }
                }); 
            }
        }
    }

是否有可能在接受请求时保存用户?

由于

1 个答案:

答案 0 :(得分:4)

您需要进行API调用以请求用户的信息。 Facebook的JavaScript API文档提供了以下示例:

FB.api('/me', function(response) {
  alert('Your name is ' + response.name);
});

(来自http://developers.facebook.com/docs/reference/javascript/#graphapi

me是指当前登录的用户。如果您使用的是用户标识,则response对象将包含name(全名),first_namelast_name(姓)和其他几个基本字段。例如,zuck是Mark Zuckerberg的用户ID,因此使用请求FB.api("/zuck", function(response) { console.log(response); });会返回以下内容:

Object {
    first_name: "Mark"
    gender: "male"
    id: "4"
    last_name: "Zuckerberg"
    link: "https://www.facebook.com/zuck"
    locale: "en_US"
    name: "Mark Zuckerberg"
    updated_time: "2013-05-09T05:12:23+0000"
    username: "zuck"
}

如果这有意义或者您有任何疑问,请告诉我们。)