|
Facebook Login การทำระบบล็อกอิน (PHP) ด้วยเฟสบุ๊ค และการจัดเก็บลงบน MySQL (V2) |
Facebook Login การทำระบบล็อกอิน (PHP) บนเฟสบุ๊ค และการจัดเก็บลงบน MySQL (V2) ปัจจุบันเราจะเห็นว่าหลาย ๆ เว็บมีการเชื่อมโยงข้อมูลสมาชิกจาก Facebook เพื่อเชื่อมโยงกับเว็บของตัวเอง ซึ่งวิธีการนั้นก็ไม่ได้ยากอะไรมากมาย เพราะ Facebook เองก็มี API ที่จะรองรับการดึงข้อมูลสมาชิกเข้ามาจัดเก็บในระบบเว็บของเราได้ ซึ่งข้อมูลที่จะดึงจาก Facebook ได้นั้น อาจจะเป็น Facebook ID , Name , Last Name ที่จะสามารถอ้างถึงสาชิกนั้น ๆ เราสามารถนำข้อมูลนี้มาจัดเก็บในเว็บ และ สามารถนำไป Apply ไปใช้ยังส่วนต่าง ๆ ของเว็บได้ตามความต้องการ
ขั้นแรกสุดจะต้องสสมัคร Facebook Developer โดยสามารถสมัครได้ที่ https://developers.facebook.com/
ก่อนจะเปิดใช้งาน Facebook Login จะต้องสร้าง App ที่จะรองรับการทำงานซะก่อน โดยไปที่
เลือกเมนู My Apps
เลือแบบ Website
ตั้งชื่อ App หรือชื่อเว็บ ซึ่งอาจจะหมายถึงชื่อกรุ๊ปที่จะใช้งาน
เลือก Crate App ID
สามารถ Skip ขั้นตอนนี้ไปได้เลย
ในหน้า Dashboard ให้ Copy ตัว App ID และ App Secret ไปใช้งาน
Status & Review ให้เลือกเปิดใช้งาน Yes
ในหน้า Settings ให้กำเพิ่ม Email Contact และเลือก Add Platform
เลือก Websites
ในขั้นตอนนี้จะเป็น URL ที่จะใช้งาน Link (Refer) มายังระบบสมาชิกเพื่อ Login บนระบบ Facebook และจะต้องกรอกให้ถูกต้อง ไม่ฉะนั้นจะไม่สามารถ Access เข้าระบบสมาชิกของ Facebook ด้
โค้ดการเขียน Login และการจัดเก็บลงใน MySQL Database
ฐานข้อมูล
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 ;
index.php (หน้าสำหรับ Login)
<?php
require 'sdk/facebook.php';
$facebook = new Facebook(array(
'appId' => '1403223089972670',
'secret' => 'fcac2c1a5b4be130568b3e87d0c4f652',
));
// 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>
page2.php (หน้าสำหรับแสดงข้อมูลหลังจากที่ Login แล้ว)
<?php
require 'sdk/facebook.php';
$facebook = new Facebook(array(
'appId' => '1403223089972670',
'secret' => 'fcac2c1a5b4be130568b3e87d0c4f652',
));
// 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>
list.php (หน้าสำหรับแสดงรายชื่อสมาชิกที่กดเข้าร่วมกลุ่ม)
<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>
Screenshot
หน้า Login บน PHP ซึ่งจะ Refer ไปยัง Facebook
Login บนระบบ Facebook
หลังจากที่ Login ผ่านแล้ว ในครั้งแรกจะมีการ Confirm ว่าจะเข้าร่วมกับ App ที่ถูกสร้างขึ้นหรือไม่
หลังจากที่เลือก Confirm แล้วระบบ Redirect กลับมายังหน้าเว็บ ซึ่งในขั้นตอนนี้เราจะสามารถนำค่า Result ที่ได้จัดเก็บลงใน MySQL
ข้อมูลที่ถูกจัดเก็บลงใน MySQL Database
ทดสอบ Link ไปยังหน้าอื่น ๆ ซึงจะเห็นว่าเราสามารถดึงค่า ID ของสมาชิกจากระบบ Facebook ได้
แสดงหน้าอื่น ๆ
หน้าสำหรับแสดงรายชื่อสมาชิกจาก Facebook ที่เข้าร่วมกลุ่มจาก Facebook
Download Code ทั้งหมด
เพิ่มเติม
รหัส App ID และ Secret ไม่ถูกต้อง
Fatal error: Uncaught OAuthException: Error validating application. Application has been deleted. thrown เปิดใช้งานextension=php_curl.dll
Fatal error: Uncaught exception 'Exception' with message 'Facebook needs the CURL PHP extension
Note!! ปัจจุบันเวอร์ชั่นนี้ได้ถูกยกเลิกใช้ไปแล้ว ให้ไปใช้ V.4, V.5 แทนหรือเลือกใช้ JavaScript SDK
Facebook Login V4 การทำระบบล็อกอิน (PHP) ด้วยเฟสบุ๊ค และการจัดเก็บลงบน MySQL
Facebook Login Api ด้วย JavaScript SDK/PHP และการจัดเก็บใน MySQL (Update 2017)
.
|