我想使用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
文件中,您可以对数据执行任何您想要的操作。在你的情况下,它将把电子邮件保存到数据库中。希望对您有所帮助
关于javascript - facebook javascript SDK - 如何将用户数据插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40375654/