Javascript 使用facebook数据填写表格

Javascript 使用facebook数据填写表格,javascript,facebook,forms,fill,Javascript,Facebook,Forms,Fill,我想允许用户在我的页面上按下一个按钮,该按钮将自动填写一个表格,其中包含他们的名字、姓氏和电子邮件地址,只要他们登录到Facebook。如果没有,则应弹出Facebook登录表单,允许用户登录,然后自动填充 我一直在javascript测试控制台中处理这个问题。我知道我需要调用名字、姓氏和电子邮件,但我不确定如何用这些信息填充我的表单字段 FB.api( { method: 'fql.query', query: 'SELECT first_name,

我想允许用户在我的页面上按下一个按钮,该按钮将自动填写一个表格,其中包含他们的名字、姓氏和电子邮件地址,只要他们登录到Facebook。如果没有,则应弹出Facebook登录表单,允许用户登录,然后自动填充

我一直在javascript测试控制台中处理这个问题。我知道我需要调用名字、姓氏和电子邮件,但我不确定如何用这些信息填充我的表单字段

FB.api(
      {
        method: 'fql.query',
        query: 'SELECT first_name, last_name, email FROM user WHERE uid=' + response.authResponse.userID
      },

我想用javascript来实现这一点。我需要创建一个函数,在单击时用此信息填充表单。有什么想法吗?

为什么不使用注册插件呢。这将为你节省很多工作

以防您需要自定义表单。您必须获得用户的许可并获取其详细信息。您可以使用以下代码:

<div id="fb-root"></div> 
<script src="https://connect.facebook.net/en_US/all.js"></script> 
FB.init({appId: 'XXXXXXXXXXXXX',status : true,xfbml  : true, cookie: true ,oauth  : true});


function login(){
        FB.getLoginStatus(function(response) {
        // checks if user already authorized
                    if (response.status === 'connected') {
                            FB.api('me?fields=id,name,email', function(user) {
                                     if(user != null) {
                                                                username  = user.name;
                                                                uid = user.id;
                                                                email = user.email;
                                                            }
                                });

                    } else {
        // If user is not authorized call FB.login for pop up window for authorization  , scope defines list of persmission requested with user
                    FB.login(function(response) {
                            if (response.authResponse.accessToken) {    
                                            FB.api('me?fields=id,name,email', function(user) {
                                                    if(user != null) {
                                                                username  = user.name;
                                                                uid = user.id;
                                                                email = user.email;
                                                            }
                                                        }) 
                                                    } 
                                                }, {scope:'email'});
                    }

                });
    }

init({appId:'xxxxxxxxxxxx',状态:true,xfbml:true,cookie:true,oauth:true});
函数登录(){
FB.getLoginStatus(函数(响应){
//检查用户是否已经授权
如果(response.status===“已连接”){
api('me?字段=id、名称、电子邮件',函数(用户){
如果(用户!=null){
用户名=user.name;
uid=user.id;
email=user.email;
}
});
}否则{
//如果用户未被授权,请调用FB.login以获得授权弹出窗口,范围定义了用户请求的任务列表
FB.登录(功能(响应){
if(response.authResponse.accessToken){
api('me?字段=id、名称、电子邮件',函数(用户){
如果(用户!=null){
用户名=user.name;
uid=user.id;
email=user.email;
}
}) 
} 
},{范围:'email'});
}
});
}

按下按钮即可调用login()。

您可以尝试以下操作:

<script>
      FB.api(
      {
        method: 'fql.query',
        query: 'SELECT first_name, last_name, email FROM user WHERE uid= ' + response.authResponse.userID}, function (data) {
        if (data && data[0]) {
            if (data[0].first_name) {
                document.getElementById('user_first_name').value = data[0].first_name;
            }
            if (data[0].last_name) {
                document.getElementById('user_last_name').value = data[0].last_name;
            }
            if (data[0].email) {
                document.getElementById('user_email').value = data[0].email;
            }
        }

      });
</script>

<input id="user_first_name" />
<input id="user_last_name" />
<input id="user_email" />

FB.api(
{
方法:“fql.query”,
查询:“选择名字,姓氏,来自用户的电子邮件,其中uid=”+response.authResponse.userID},函数(数据){
if(数据和数据[0]){
if(数据[0]。名字){
document.getElementById('user\u first\u name')。value=data[0]。first\u name;
}
if(数据[0]。姓氏){
document.getElementById('user\u last\u name')。value=data[0]。last\u name;
}
如果(数据[0]。电子邮件){
document.getElementById('user_email')。值=数据[0]。电子邮件;
}
}
});

我确实看过这个,但我已经使用了一个工作表单,所以我不想再添加另一个表单,我只想按一下按钮,用facebook数据预先填充这个表单。我已经编辑了我的答案,包括代码,以便在不注册插件的情况下获取用户详细信息。如果“response.authResponse.userID”是有效的用户ID。