4

我最近才开始将 Facebook 整合到我目前正在开发的网站上。到目前为止我所拥有的是用户可以登录,我可以在登录后获取他们的信息。我很难理解的是如何在初始登录 html 页面之后进行 FB.api() 调用?我知道 Javascript SDK 会自动处理访问令牌和其他东西,但我不确定如何使用它。到目前为止,我所拥有的是:

    window.fbAsyncInit = 函数()
        {
                FB.init({
                    appId : 'API_KEY', // 设置你的应用 ID
                    channelUrl : 'DOMAIN', // 频道文件
                    status : true, // 检查登录状态
                    cookie : true, // 启用 cookie 以允许服务器访问会话
                    xfbml : true // 解析 XFBML
                });

            FB.Event.subscribe('auth.authResponseChange', function(response)
            {
                console.log("授权变更");
                if (response.status === '已连接')
                {

                    console.log("连接到 Facebook");
                    //成功
                }    
                else if (response.status === 'not_authorized')
                {
                    console.log("登录 Facebook 但不是我们");
                    Facebook登入();
                    //失败的
                }
                别的
                {
                    console.log("两者都登出");
                    Facebook登入();
                    //未知错误
                }
            });
        };   
        函数 FacebookLogin()
        {
            FB.login(功能(响应)
            {
                如果(response.authResponse)
                {
                    window.location = "test.php";
                }
                别的
                {
                    console.log('用户取消登录或未完全授权。');
                }
            },{范围:'email,user_birthday,read_friendlists'});
        }

        // 异步加载 SDK
        (函数(d){
            var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
            if (d.getElementById(id)) {return;}
            js = d.createElement('脚本'); js.id = id; js.async = true;
            js.src = "//connect.facebook.net/en_US/all.js";
            ref.parentNode.insertBefore(js, ref);
        }(文档));

 

所有这些代码都在登录 html 页面顶部的脚本标记内。我要做的是,一旦用户登录并通过身份验证,我将引导他们到另一个页面,我将使用 FB.api() 函数获取他们的信息并为他们填写注册表单。有什么建议或提示吗?

4

1 回答 1

0

您可以在用户登录成功后使用以下函数获取有关用户的信息并显示在任何 DOM 元素中

 function fqlQuery(){
            FB.api('/me', function(response) {
                 var query = FB.Data.query('select name, hometown_location, sex, pic_square from user where uid={0}', response.id);
                 query.wait(function(rows) {

                   document.getElementById('name').innerHTML =
                     'Your name: ' + rows[0].name + "<br />" +
                     '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />";
                 });
            });
        }

更多示例可以在这里找到

于 2013-08-23T10:00:16.907 回答