สร้าง login logout และกำหนด permission ของ facebook ด้วย php sdk

05 October 2010

การใช้งาน php-sdk ในการสร้างระบบ login logout และการกำหนด permission การเข้าถึงข้อมูล ของ facebook
ทำให้เราสามารถกำหนดรูปแบบ แทนการใช้งาน javascript กับ fbml ของ facebook ได้

ตัวอย่างการประยุกต์ใช้งาน สร้างลิ้งค์ สำหรับ login กรณียังไม่ได้ login facebook และกาสร้างรลิ้งค์สำหรับ
logout กรณ๊ทำการ login facebook อยู่แล้ว

 

<?php
session_start(); // กำหนดไว้ กรณีอาจได้ใช้ตัวแปร session
include("facebook.php"); //  เรียกใช้งานไฟล์ php-sdk สำหรับ facebook

// สร้าง Application instance.
$facebook = new facebook(array(
  'appId'  => 'xxxxxxxxxxxxx', // appid ที่ได้จาก facebook
  'secret' => 'xxxxxxxxxxxxxxxxxxxxx', // app secret ที่ได้จาก facebook
  'cookie' => true, // อนุญาตใช้งาน cookie
));
// appId และ secret ดูวิธีการได้มาจาก 
// http://www.ninenik.com/สร้าง_comment_ด้วย_social_plugins_ใน_facebook_api_อย่างง่ายดาย-291.html

// ตรวจสอบสถานะการ login
$session = $facebook->getSession();

// สร้างฟังก์ชันไว้สำหรัดทดสอบ การแสดงผลการใช้งาน
function pre($varUse){
	echo "<pre>";
	print_r($varUse);
	echo "</pre>";
}
// สร้างตัวแปรสำหรับเก็บข้อมูลของสมาชิกเมื่อได้ทำการ login แล้ว
$me = null; 

// ถ้ามีการ login ดึงข้อมูลสมาชิกที่ login มาเก็บที่ตัวแปร $me เป็น array
if($session){
	try{
		$uid = $facebook->getUser(); // เก็บ id ของผู้ใช้ไว้ที่ตัวแปร $uid กรณีมีการล็อกอิน facebook อยู่
		$me = $facebook->api('/me'); // ดึงข้อมูลผู้ใช้ปัจจุบันทีล็อกอิน facebook มาเก็บในตัวแปร $me
	}catch (FacebookApiException $e) { // กรณีเกิดข้อผิดพลากแสดงผลลัพธ์ข้อผิดพลาดที่เกิดขึ้น
		error_log($e);
	}
}
?>
<?php
////////////////////////////////////////////////////////////////////////////////
///       ส่วนของการใช้งาน
///////////////////////////////////////////////////////////////////////////////////
if(isset($_GET['logout'])){ // ทำการ logout อย่างสมบูรณ์
	$facebook->setSession(null); 	// ล่างค่า session ของ facebook
	header("Location:".$_SERVER['PHP_SELF']); //ลิ้งค์ไปหน้าที่ต้องการเมื่อ logout เรียบร้อยแล้ว
}
if($me){ // กรณีเงื่อน login อยู่
// เก็บค่า url ไว้ในตัวแปร $logoutUrl สำหรับ logout กรณีที่ได้ทำการ login อยู่
//	$logoutUrl = $facebook->getLogoutUrl(); // การกำหนดแบบปกติ
// การกำหนดแบบปกติ ค่า session ของ facebook ยังคงอยู่ แนะนำเป็นวิธีด้านล่าง

//   next คือ url ที่ต้องการลิ้งค์ไป เมื่อ logout แล้ว ในที่นี้กำหนด เป็น url ปัจจุบัน 
//   แต่เพิ่มตัวแปร get ชื่อ logout เพื่อกลับมาเข้าเงื่อนไข ทำลาย session ของ facebook
	$logoutUrl = $facebook->getLogoutUrl(
		array(
			'next'=>'http://www.ninenik.com/fb/facebook_use_sdk2.php?logout'
		)
	); 
  
}else{  // กรณีเงื่อนไข logout
// เก็บค่า url ไว้ในตัวแปร $loginUrl สำหรับ login กรณีที่ยังไม่ได้ login
//  $loginUrl = $facebook->getLoginUrl();  // กำหนด url กรณีใช้งานปกติ
 
//  กำหนด url สำหรับ login กรณีเพิ่มเติมพิเศษ
//  next: คือ url ที่้ต้องการใช้ลิ้งค์ไป เมื่อ login สำเร็จ
//  cancel_url: คือ url ที่้ต้องการใช้ลิ้งค์ไป เมื่อ ผู้ใช้ยกเลิกการ login
//  req_perms: กำหนด การร้องขอส่วนของ permission เพิ่มเติมที่ต้องการให้ผู้ใช้อนุญาต
//  ดูได้จาก http://developers.facebook.com/docs/authentication/permissions
//  display:  รูปแบบหน้า login ที่ต้องการแสดง ปกติค่าจะเป็น page ถ้าไม่ได้กำหนด 
//  จะเป็นหน้า เพจ login ของ facebook ปกติ
//  การกำหนดแบบ popup จะมีปุ่ม cancel ให้เลือก และใช้กับ cancel_url แนะนำให้ใช้เป็น popup
   $loginUrl = $facebook->getLoginUrl(
   		array(
			'next'=>'http://www.ninenik.com/fb/facebook_use_sdk2.php',
			'cancel_url'=>'http://www.ninenik.com/fb/facebook_use_sdk2.php',
			'req_perms'=>'offline_access,user_photos', // คั่นแต่ละค่าด้วย ,(comma)
			'display'=>'popup'	 // page หรือ popup		
		)
   );
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
 xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>facebook use php sdk login logout</title>
</head>

<body>


<?php if($me){ ?>
<a href="<?=$logoutUrl?>">Facebook Logout</a>
<?php }else{ ?>
<a href="<?=$loginUrl?>">Facebook Login</a>
<?php } ?>

<?php
pre($me);
?>


</body>
</html>

ตัวอย่าง http://www.ninenik.com/fb/facebook_use_sdk2.php








บทความในหมวดที่่น่าสนใจ อื่นๆ PHP Learning

17 Mar 09 ง่ายๆ กับการส่งค่าตัวแปร PHP ไปใช้ใน Javascript อ่าน 7504 04 Nov 09 ประยุกต์สร้าง pdf ไฟล์ จาก tcpdf class ด้วย php รองรับภาษาไทย อ่าน 6909 26 Mar 09 ฟังก์ชัน php แบ่งหน้าแต่งด้วย css อ่าน 6827 19 Jul 10 การนำ ระบบสมาชิก ของ facebook มาประยุกต์ใช้ อ่าน 6735 31 Mar 09 ดึงข้อมูลจากฐานข้อมูลเป็น excel ด้วย php รองรับภาษาไทย อ่าน 6721 25 Sep 08 ดึงข้อมูลจากฐานข้อมูลใส่ List Box อ่าน 6516 25 Sep 08 แบ่งหน้า ด้วย Code แบบง่าย อ่าน 6486 18 Aug 10 ใช้ php ดึงรูปภาพ จากโฟลเดอร์ มาแสดง พร้อม เทคนิค แบ่งหน้า อ่าน 6458 07 Jul 10 เทคนิค php ดึงข้อมูล comment จาก facebook มาใช้งาน อ่าน 6408 25 Sep 08 การแสดงข้อมูลจากตารางด้วย PHP อ่าน 6150 25 Oct 08 ส่งอีเมลล์พร้อมกับแนบไฟล์ด้วย php mail function ได้อย่างง่าย อ่าน 6060 25 Sep 08 การสร้างวันเวลาปัจจุบัน ด้วยฟังก์ชัน date() อ่าน 5980 25 Sep 08 ปฏิทินอย่างง่ายด้วย php และ css อ่าน 5819 14 Feb 09 คำนวณหาอายุ จากวันเกิด ด้วย php อ่าน 5794 25 Sep 08 Upload รูปภาพ หรือไฟล์ด้วย ฟังก์ชั่น ใช้ง่าย อ่าน 5587

บทความคนเข้าอ่านวันนี้

29 Sep 10 แนวทาง การสร้าง ระบบตรวจสอบ การล็อกอิน อย่างง่าย ด้วย ajax ใน jQuery และ php อ่าน 5046 09 Apr 10 สร้าง countdown นับเวลา ถอยหลัง ด้วย javascript อ่าน 5973 28 Oct 08 ดึงข้อมูลจาก text ไฟล์มาแสดงด้วย ajax อ่าน 5918 01 Dec 10 การใช้งาน polyline และ polygon ใน google map api v3 อ่าน 4791 10 Oct 10 การใช้งาน stream.publish ของ facebook Old REST API ด้วย php sdk อ่าน 2951 25 Sep 08 ข้อความ Text การจัดการเกี่ยวกับขนาดและรูปร่างของข้อความ อ่าน 4106 14 Jan 10 รู้จัก property position ของ css ให้มากขึ้น ด้วย ตัวอย่าง และคำอธิบาย อ่าน 7663 04 Jan 10 ดึงไฟล์ xml (rss) ไฟล์แบบ cross domain มาแสดงด้วย ajax ใน jQuery อย่างง่าย อ่าน 4238 03 Nov 08 เปิด popup แล้วให้แสดงแบบ maximize อ่าน 5293 18 Aug 10 ใช้ php ดึงรูปภาพ จากโฟลเดอร์ มาแสดง พร้อม เทคนิค แบ่งหน้า อ่าน 6458 25 Sep 08 การกำหนด selectors ด้วย jQuery แบบลำดับขั้น ตอนที่ 1 อ่าน 4087 23 Nov 09 ทำการ cache หน้าเว็บไซต์ด้วย php class อย่างง่าย อ่าน 2492 19 Apr 10 สอน jQuery เพิ่มรูปภาพ ให้ตัวเลือก ใน listbox อ่าน 5215 09 Oct 09 ขยายขนาดความสูงของ iframe ตามความสูงของเพจที่แสดง ด้วย jQuery อ่าน 4123 25 Oct 08 ส่งอีเมลล์พร้อมกับแนบไฟล์ด้วย php mail function ได้อย่างง่าย อ่าน 6060 30 Oct 10 การเลื่อน jQuery UI tab อัตโนมัติ ตามเวลาที่กำหนด อ่าน 11027 07 Oct 10 การใช้ php sdk เรียกใช้งาน graph api ใน facebook แบบระบุส่วนของข้อมูล อ่าน 2926 01 Nov 10 ประยุกต์ ฟังก์ชัน animate ใน jQuery เลื่อน scroll หน้าเพจ อ่าน 3147 19 Nov 10 ทางเลือก อัพโหลดไฟล์ใน ckeditor ด้วย ajax file manager อ่าน 2710 17 Jan 11 เทคนิค วิธี การแสดงข้อมูล ด้วยเงื่อนไข วันที่ date ใน mysql อ่าน 5377
จำนวนผู้เยี่ยมชม 892674
คน 2012 © Copyright ninenik.com. All rights reserved.