2012-10-29 56 views
5

Tôi muốn cho phép người dùng nhấn một nút trên trang của tôi sẽ tự động điền biểu mẫu có tên, họ và địa chỉ email của họ, miễn là họ đăng nhập vào Facebook. Nếu không, thì biểu mẫu đăng nhập Facebook sẽ bật lên, cho phép người dùng đăng nhập và sau đó việc điền tự động sẽ diễn ra.Điền biểu mẫu sử dụng dữ liệu facebook

Tôi đã làm rối tung điều này trong bảng điều khiển kiểm tra javascript. Tôi biết tôi sẽ cần phải gọi first_name, last_name và email, nhưng tôi không chắc chắn cách điền các trường biểu mẫu của tôi với thông tin này.

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

Tôi muốn thực hiện việc này bằng javascript. Tôi cần tạo một hàm sẽ điền một biểu mẫu với thông tin này khi nhấp chuột. Bất kỳ ý tưởng?

Trả lời

8

Tại sao bạn không sử dụng Plugin đăng ký. Nó sẽ giúp bạn tiết kiệm rất nhiều công việc https://developers.facebook.com/docs/plugins/registration/

Trong trường hợp bạn muốn có biểu mẫu tùy chỉnh. Bạn sẽ phải xin phép người dùng và nhận được thông tin chi tiết của mình. Bạn có thể sử dụng mã sau:

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

       }); 
    } 

Bạn gọi tên đăng nhập() khi nhấn nút của bạn.

+0

tôi đã có một cái nhìn lúc này, nhưng tôi đã có một hình thức lao động trong sử dụng, vì vậy thay vì thêm một hình thức khác tôi chỉ muốn pre-cư này hình thức với dữ liệu facebook chỉ bằng một nút bấm. –

+0

Tôi đã chỉnh sửa câu trả lời của mình để bao gồm mã để lấy chi tiết người dùng mà không cần đăng ký plugin. –

0

Bạn có thể thử một cái gì đó như thế:

<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" /> 
+0

nếu "response.authResponse.userID" là ID người dùng hợp lệ. –

Các vấn đề liên quan