就像评论中讨论的那样,这里是使用 JS SDK 的示例
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <!-- jQuery library, makes things easier. -->
<title>FB example</title>
</head>
<body>
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
// init the FB JS SDK
FB.init({
appId : YOUR_APP_ID, // App ID from the app dashboard
status : true, // Check Facebook Login status
xfbml : true // Look for social plugins on the page
});
// Additional initialization code such as adding Event Listeners goes here
};
// Load the SDK asynchronously
(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/all.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
/*
This function gets information about user and alrets user's name.
*/
function getUserInfo() {
FB.api('/me', function(response) {
$.ajax({
url: "ajax.php", //url to send ajax request to
data: {
json: response, // Key => value pairs of items to send
},
success: function(ajaxResponse) { // upon successful request
alert(ajaxResponse); //Alert whatever response we got.
}
})
})
}
/*
This function gets the login status of user
*/
function getLoginStatus() {
FB.getLoginStatus(function(response) {
if (response.status === 'connected') { //User is connected to Facebook and authorized your app
getUserInfo();
} else if (response.status === 'not_authorized') { //User is connected to Facebook, but hasn't authorized your app
login();
} else { //User is not connected to Facebook
login();
}
});
}
/*
Function promts user to log in and asks for permissions
*/
function login() {
FB.login(function(response) {
if (response.authResponse) {
getUserInfo();
} else {
alert('User cancelled login or did not fully authorize.');
}
}, {scope: 'email'}); // Comma separated permissions
}
</script>
<a href="javascript:getLoginStatus()"/>Login</a>
</body>
</html>
这是一个非常简单的例子。在页面上,您将看到链接“登录”。按下它后,您将被要求登录(如果您尚未登录 Facebook,或者您尚未授权应用程序),或者它将显示带有您姓名的弹出窗口。大部分代码取自JavaScript SDK 文档
编辑:
要将用户的数据添加到您的数据库中,我建议从该getUserInfo()
函数进行 AJAX 调用。将警报部分替换为对某个 php 文件的 ajax 调用,您将创建该文件并将其传递给response
变量中的数据(其中包含有关用户的数据,例如response.name
和response.email
)。在 php 文件本身中,将您获得的信息插入数据库。
另一个编辑:
我再次更新了代码,即我添加了 jQuery 库(我更容易在其中进行 ajax 调用,尽管它与普通 JS 没有太大区别)。
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
并更新getUserInfo()
了向ajax.php
.
在ajax.php
我只做了一行:
print_r($_REQUEST['json']);
这将简单地打印出通过 ajax 发送的任何数据,您将在弹出窗口中看到它。下一步将检查您获得的信息,并获取您需要的任何信息(它$_REQUEST['json']
是简单的数组),并将其插入到 db.xml 中。