簡體   English   中英

facebook javascript SDK-如何將用戶數據插入數據庫

[英]facebook javascript SDK - how can I insert the userdata to database

我要使用javascript sdk,因為新版本的facebook php sdk不支持我公司的PHP版本。
好的,...我想將FacebookUser的電子郵件插入數據庫MySQL。 請查看功能get_Info()。 我想將“ response.email”的值解析為PHP變量並插入到MySQL中,但是我不知道該怎么辦,因為該變量在js函數中。

  window.fbAsyncInit = function() {

  FB.init({
    appId: 'xxxxxxxxxxxx',  //Your appId
    xfbml: true,
    version: 'v2.8'
  });
  FB.AppEvents.logPageView();
  FB.getLoginStatus(function(response) {
    if (response.status === 'connected') {
      document.getElementById('status').innerHTML = 'We are connected.';
      document.getElementById('fb_login').style.visibility = 'hidden';
    } else if (response.status === 'not_authorized') {
      document.getElementById('status').innerHTML = 'We are not logged in.';
    } else {
      document.getElementById('status').innerHTML = 'You are not logged into Facebook';
    }
  });
};

(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) {
    return;
  }
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

function fb_login() {
  FB.login(function(response) {
    if (response.status === 'connected') {
      document.getElementById('status').innerHTML = 'We are connected.';
      document.getElementById('fb_login').style.visibility = 'hidden';
    } else if (response.status === 'not_authorized') {
      document.getElementById('status').innerHTML = 'We are not logged in.';
    } else {
      document.getElementById('status').innerHTML = 'You are not logged into Facebook';
    }
  }, {
    scope: 'email'
  });
}

function getInfo() {
  FB.api('/me', 'GET', {
    fields: 'first_name,last_name,name,id,email'
  }, function(response) {
    document.getElementById('status').innerHTML = response.email;
  });

  FB.api('/me', 'GET', {
    fields: 'first_name,last_name,name,id,email'
  }, function(response) {
    document.getElementById('status2').innerHTML = response.name;
  });
}

function fb_logout() {
  FB.logout(function() {
    document.location.reload();
  });
}

html

<div id="status"></div>   <div id="status2"></div>
                <button onclick="getInfo()"> Get Info</button>
                <button onclick="fb_login()" id="fb_login"> Login with Facebook </button>
                <button onclick="fb_logout()"> Log out </button> 

您必須為此使用AJAX。 如果要將JS數據傳遞給PHP,請進行AJAX調用。 例如,您可以這樣做:

1.像這樣修改您的getInfo()函數:

function getInfo() {
  FB.api('/me', 'GET', {
    fields: 'first_name,last_name,name,id,email'
  }, function(response) {
    var email = response.email;

    var http = new XMLHttpRequest();
    var url = "path/to/your/file.php";
    var data = "email=" + email;
    http.open("POST", url, true);    
    http.onreadystatechange = function() {//Call a function when the state changes.
        if(http.readyState == 4 && http.status == 200) {
            alert(http.responseText);
        }
    } 
    http.send(data);
  });
}

2.創建一個file.php並編寫以下代碼:

<?php 
if($_SERVER['REQUEST_METHOD'] == 'POST'){
    $email = $_POST['email'];
    echo $email;
    //Do whatever you want with your email
}
?>



代碼的作用是使用簡單的AJAX調用將JS數據發送到PHP文件。 在您的file.php文件中,您可以對數據進行任何操作。 您的情況將是將電子郵件保存到數據庫。 希望對您有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM