使用Facebook数据填写表格

nel*_*e-f 5 javascript forms facebook fill

我想允许用户按下我的页面上的一个按钮,该按钮将自动填写表单,其中包含他们的名字,姓氏和电子邮件地址,前提是他们已登录到Facebook.如果不是,那么应该弹出Facebook登录表单,允​​许用户登录,然后进行自动填充.

我一直在javascript测试控制台搞乱这个.我知道我需要调用first_name,last_name和email,但我不确定如何用这些信息填充表单字段.

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

我想在javascript中这样做.我需要创建一个函数,在单击时使用此信息填充表单.有任何想法吗?

Vis*_*tty 8

为什么不使用Registration Plugin.它将为您节省大量工作https://developers.facebook.com/docs/plugins/registration/

如果您想要自定义表单.您必须获得用户的许可并获取他的详细信息.您可以使用以下代码:

<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'});
                    }

                });
    }
Run Code Online (Sandbox Code Playgroud)

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