Đăng nhập Facebook với PHP và MySQL
Phan Nhật Chánh - Official website

Đăng nhập Facebook với PHP và MySQL

   Apr 12, 2016   
Báo lỗi bài viết×
Bài viết: Đăng nhập Facebook với PHP và MySQL
Ngày nay, người dùng web thường ít quan tâm đến việc điền vào các biểu mẫu đăng ký trên trang web của bạn, họ thường tích hợp sẳn một ứng dụng đăng ký, đăng nhập bằng một tài khoản của trang mạng xã hội như facebook hay google. Trước đây, chúng tôi có hướng dẫn cách đăng nhập facebook bằng Javascript SDK, tiếp tục hướng dẫn này sẽ giúp bạn làm thế nào để thực hiện đăng ký và đăng nhập với Facebook bằng PHP và lưu trữ các thông tin người dùng vào cơ sở dữ liệu MySQL. Nó rất hữu ích và đơn giản để tích hợp vào ứng dụng web của bạn.

Đăng ký App Facebook

- Đầu tiên bạn cần đăng nhập vào tài khoản facebook của mình, kế đến là truy cập vào địa chỉ dành cho nhà phát triển ứng dụng https://developer.facebook.com Trên menu My Apps chọn Add a New App


huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login

- Nó sẽ hiển thị ra một bảng cho bạn lựa chọn ứng dụng cần tạo, ở đây ta chọn WWW


huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login

- Tiếp theo nhập tên cho ứng dụng cần tạo và nhấn nút Create New Facebook App ID

huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login

- Chọn Category và nhấn Create App ID

huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login

- Bạn sẻ được chuyển đến trang thông tin và quản lý cấu hình App như hình dưới (bạn sẻ được App IDApp Secret)

huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login

- Tiếp đến bạn cần bật ứng dụng lên bằng cách vào App Review và chọn Yes


huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login
- Tại mục Setting khai báo địa chỉ email và tên miền cho ứng dụng (ở đây mình chạy trên localhost).
huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login

- Xong, bấm chọn Add Flatform một popup hiển thị và bạn chọn website như hình dưới

huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login

- Ở đây tôi điền localhost và cuối cùng là nhấn vào nút Save Changes

huong dan tao tranng dang nhap facebook bang php va mysql, login facebook php mysql, lam the nao tao trang dang nhap facebook, login facebok with php mysql, facebook sdk login

- Bạn đã có được App ID, App Secret và ứng dụng của bạn đả sẵn sàng.

Login Facebook với PHP và MySQL (SDK v2)

- Trước tiên, ta tạo ra Database như sau:
CREATE TABLE IF NOT EXISTS `tb_facebook` (
`ID` int(6) NOT NULL AUTO_INCREMENT,
`FACEBOOK_ID` varchar(50) NOT NULL,
`NAME` varchar(150) NOT NULL,
`LINK` varchar(250) NOT NULL,
`CREATE_DATE` datetime NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `ID` (`FACEBOOK_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
- Và ta có nội dung của tập tin index.php như sau:
<?php
require 'sdk/facebook.php';

$facebook = new Facebook(array(
'appId' => '401343546691700', //App ID
'secret' => '5eddecdeb74652781378e0a6ea271b13', //App Secret
));

// Get User ID
$user = $facebook->getUser();

if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}

if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}

// Save to mysql
if ($user) {
if($_GET["code"] != "")
{
$objConnect = mysql_connect("localhost","root","root") or die(mysql_error());
$objDB = mysql_select_db("mydb");
mysql_query("SET NAMES UTF8");
$strSQL =" INSERT INTO tb_facebook (FACEBOOK_ID,NAME,LINK,CREATE_DATE)
VALUES
('".trim($user_profile["id"])."',
'".trim($user_profile["name"])."',
'".trim($user_profile["link"])."',
'".trim(date("Y-m-d H:i:s"))."')";
$objQuery = mysql_query($strSQL);
mysql_close();
header("location:index.php");
exit();
}
}

// Logout
if($_GET["Action"] == "Logout")
{
$facebook->destroySession();
header("location:index.php");
exit();
}

?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>php-sdk</title>
<style>
body {
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
}
h1 a {
text-decoration: none;
color: #3b5998;
}
h1 a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<h1>php-sdk</h1>

<?php if ($user): ?>
<a href="page2.php">Page 2</a> | <a href="?Action=Logout">Logout</a>
<?php else: ?>
<div>
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
</div>
<?php endif ?>

<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>

<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">

<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>

</body>
</html>
- Page-2.php
<?php
require 'sdk/facebook.php';

$facebook = new Facebook(array(
'appId' => '401343546691700', //App ID
'secret' => '5eddecdeb74652781378e0a6ea271b13', //App Secret
));

// Get User ID
$user = $facebook->getUser();

if (!$user) {
header("location:index.php");
}
else
{
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}


?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>Page 2</title>
<style>
body {
font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
}
h1 a {
text-decoration: none;
color: #3b5998;
}
h1 a:hover {
text-decoration: underline;
}
</style>
</head>
<body>
<h1>Page 2</h1>


<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>

<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">

<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>

</body>
</html>
- Tạo tập tin list.php để hiển thị thông tin thành viên đăng ký
<html>
<head>
<title>ThaiCreate.Com</title>
</head>
<body>
<?php
$objConnect = mysql_connect("localhost","root","root") or die(mysql_error());
$objDB = mysql_select_db("mydb");
mysql_query("SET NAMES UTF8");
$strSQL = "SELECT * FROM tb_facebook";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="400" border="1">
<tr>
<th><div align="center">Facebook ID </div></th>
<th><div align="center">Picture </div></th>
<th><div align="center">Name </div></th>
<th><div align="center">CreateDate </div></th>
</tr>
<?php
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr>
<td><div align="center"><?php echo $objResult["FACEBOOK_ID"];?></div></td>
<td><a href="<?php echo $objResult["LINK"];?>"> <img src="https://graph.facebook.com/<?php echo $objResult["FACEBOOK_ID"];?>/picture"></a></td>
<td><?php echo $objResult["NAME"];?></td>
<td><div align="center"><?php echo $objResult["CREATE_DATE"];?></div></td>
</tr>
<?php
}
?>
</table>
<?php
mysql_close($objConnect);
?>
</body>
</html>

1 comment:

  1. Trần Thanh Tùng21/6/16 19:35

    anh ơi em làm theo hướng dẫn mà nó không chạy

    ReplyDelete