คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ php sdk facebook login logout permission
การใช้งาน php-sdk ในการสร้างระบบ login logout และการกำหนด permission การเข้าถึงข้อมูล ของ facebook
ทำให้เราสามารถกำหนดรูปแบบ แทนการใช้งาน javascript กับ fbml ของ facebook ได้
ตัวอย่างการประยุกต์ใช้งาน สร้างลิ้งค์ สำหรับ login กรณียังไม่ได้ login facebook และกาสร้างรลิ้งค์สำหรับ
logout กรณ๊ทำการ login facebook อยู่แล้ว
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | <?phpsession_start(); // กำหนดไว้ กรณีอาจได้ใช้ตัวแปร sessioninclude("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.webphp.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 เป็น arrayif($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.webphp.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 เพิ่มเติมที่ต้องการให้ผู้ใช้อนุญาต// display: รูปแบบหน้า login ที่ต้องการแสดง ปกติค่าจะเป็น page ถ้าไม่ได้กำหนด // จะเป็นหน้า เพจ login ของ facebook ปกติ// การกำหนดแบบ popup จะมีปุ่ม cancel ให้เลือก และใช้กับ cancel_url แนะนำให้ใช้เป็น popup $loginUrl = $facebook->getLoginUrl( array( 'next'=>'http://www.webphp.com/fb/facebook_use_sdk2.php', 'cancel_url'=>'http://www.webphp.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"<html xmlns="http://www.w3.org/1999/xhtml"<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 } ?><?phppre($me);?></body></html> |
ตัวอย่าง http://www.webphp.com/fb/facebook_use_sdk2.php