|
Facebook Login V4 การทำระบบล็อกอิน (PHP) ด้วยเฟสบุ๊ค และการจัดเก็บลงบน MySQL |
Facebook Login V4 การทำระบบล็อกอิน (PHP) ด้วยเฟสบุ๊ค และการจัดเก็บลงบน MySQL ก็ไม่ขอพูดอะไรมากนะครับเพราะยังไงคนที่เข้ามาอ่านบทความก็ต้องรู้การทำงานมันอยู่แล้วแต่ถ้าจะต้องการสร้าง App id facebook และตั้งค่าของ app นั้นให้เข้าไปอ่านได้ที่ https://www.thaicreate.com/community/facebook-login-php-mysql.html
Login Facebook API V4
สำหรับตารางของ MySQL สามารถดูโครงสร้างได้จากบทความก่อนหน้านี้ V2 (Facebook Login API V2)
สิ่งที่ต้องเตรียมคือ
ก่อนอื่นแนะนำให้อ่านวิธีการสมัคร Facebook API
มาดูโค้ดกันเลยครับ
ob_start();
session_start();
$app_id = 'xxxxxxxxxxxxxxxxxxxxx';
$app_secret = 'xxxxxxxxxxxxxxxxxx';
$required_scope = 'public_profile, publish_actions, email'; //Permissions required
$redirect_url = 'http://localhost/www/example/facebook/login_v4/'; //FB redirects กลับเมื่อ login ผ่านแล้ว
$mysql_host = 'localhost';
$mysql_username = 'root';
$mysql_password = '';
$mysql_db_name = 'test';
require_once"facebook-php-sdk-v4-4.0-dev/autoload.php";
//เรียกใช้ class
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRedirectLoginHelper;
FacebookSession::setDefaultApplication($app_id , $app_secret);
$helper = new FacebookRedirectLoginHelper($redirect_url);
try {
$session = $helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
die(" Error1 : " . $ex->getMessage());
} catch(\Exception $ex) {
die(" Error2 : " . $ex->getMessage());
}
//สร้างปุ่ม log out
if(isset($_GET["log-out"]) && $_GET["log-out"]==1){
unset($_SESSION["fb_userDetails"]);
//session ver is set, redirect user
header("location: ". $redirect_url);
}
//ทำการเช็คค่าที่ได้จาก facebook
if (isset($session)) {
//ทำการเชื่อมต่อแล้วอ่านค่าจาก facebook graph
$user_profile = (new FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(GraphUser::className());
//ทำการเก็บค่าลง session เพื่อเรียกใช้งานต่อไป
$_SESSION["fb_userDetails"] = $user_profile->asArray();
/*echo'<pre>';
print_r($user_profile);
echo'</pre>';*/
//insert sql
$user_id = ( isset( $_SESSION["fb_userDetails"]["id"] ) )? $_SESSION["fb_userDetails"]["id"] : "";
$user_name = ( isset( $_SESSION["fb_userDetails"]["name"] ) )? $_SESSION["fb_userDetails"]["name"] : "";
$user_email = ( isset( $_SESSION["fb_userDetails"]["email"] ) )? $_SESSION["fb_userDetails"]["email"] : "";
$mysqli = new mysqli($mysql_host, $mysql_username, $mysql_password, $mysql_db_name);
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
//เช็ค fbid ใน server เราก่อนว่ามีหรือยัง
$results = $mysqli->query("SELECT COUNT(*) FROM tb_member WHERE fbid=".$user_id);
$get_total_rows = $results->fetch_row();
if(!$get_total_rows[0]){ //ไม่พบข้อมูลก็ให้ insert ใหม่
$insert_row = $mysqli->query("INSERT INTO tb_member (fbid, fullname, email) VALUES(".$user_id.", '".$user_name."', '".$user_email."')");
}
header("location: ". $redirect_url);
}else{
//ตรวจสอบค่า session fb_userDetails
if(isset($_SESSION["fb_userDetails"])){
echo'สวัสดี: '.$_SESSION["fb_userDetails"]["name"].' หากต้องการออกจากระบบคลิก '.[ <a href="?log-out=1">Logout</a> ] ';
echo'<pre>';
print_r($_SESSION["fb_userDetails"]);
echo'</pre>';
}else{
//Link Login facebook
$login_url = $helper->getLoginUrl( array( 'scope' => $required_scope ) );
echo '<a href="'.$login_url.'">Login with Facebook</a>';
}
}
ไม่มีภาพให้ดูนะครับมีแค่ค่าที่ดึงได้ตามนี้ครับ
สวัสดี: TestName Development หากต้องการออกจากระบบคลิก [ Logout ]
Array
(
[id] => 764168xxxxxxxxx
[email] => [email protected]
[first_name] => TestName
[gender] => male
[last_name] => Development
[link] => https://www.facebook.com/app_scoped_user_id/764168xxxxxxxxx/
[locale] => th_TH
[name] => TestName Development
[timezone] => 7
[updated_time] => 2014-10-26T10:49:34+0000
[verified] => 1
)
Note !. ย้ำนะครับว่า Facebook SDK V4 รองรับ PHP 5.4+ ขึ้นไปนะครับ

|
|
|
|
 |
|
|
|
By : |
phpbasic
|
|
Article : |
บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ |
|
Score Rating : |
   |
|
Create Date : |
2015-02-06 |
|
Download : |
No files |
|
Sponsored Links |
|
|
|
|
|
|