คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ 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 | <?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.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 เป็น 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.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 } ?> <?php pre( $me ); ?> </body> </html> |
ตัวอย่าง http://www.webphp.com/fb/facebook_use_sdk2.php