วิธีการสร้าง :
-------------------
ในวิธีจะแนะนำการสร้างด้วยภาษา PHP ซึ่งเป็นที่นิยมกัน
(1) เว็บมาสเตอร์ต้องมี Facebook Account ของตัวเอง แล้วเข้าไปที่เมนูสร้างแอพ / จัดการแอพ ตามลิงค์ด้านล่างนี้
https://developers.facebook.com/apps?ref=mb
(2) เว็บมาสเตอร์ทำการสร้างแอพ เพื่อจะนำเอาเลข app_id และรหัส app_secret ที่ facebook ให้นำมาใช้ต่อไป
(3) ดาวโหลด PHP_SDK ที่เว็บไซต์ Github.com (ต้องสมัครสมาชิกก่อนจึงจะดาวโหลดได้) โดยดาวโหลดได้ตามลิงค์ด้านล่างนี้
https://github.com/facebook/facebook-php-sdk (ปุ่มดาวโหลด SDK จะอยู่คอลัมน์ขวามือล่างสุด (หายากหน่อย))
(4) ดาวโหลดมาเสร็จให้แตกไฟล์ออกมา จะได้ 3 โฟลเดอร์ คือ examples / src / tests
(5) ให้อัพโหลดเฉพาะโฟลเดอร์ src ไปไว้บนโฮสต์ของเรา ซึ่งจะมี 3 ไฟล์สำคัญ โดยทั้ง 3 ไฟล์นี้จะถูกเรียกใช้ผ่านฟังก์ชั่น require()
6) พารามิเตอร์ของ facebook พร้อมตัวอย่างวิธีการใช้ methodแต่ละอันสำหรับ PHP อยู่ที่หน้านี้
https://developers.facebook.com/docs/reference/php/
(7) ตัวอย่างโค้ด PHP สมบูรณ์ สำหรับการสร้างระบบ Login ด้วย Facebook
พร้อมลิงค์สำหรับการออกจากระบบด้วย ในที่นี่ผมตั้งชื่อไฟล์ว่า fblogin.php และให้คัดลอกโค้ดด้านล่างไปใส่ บันทึก และ อัพโหลดขึ้นโฮสต์
require_once("facebook.php"); // เรียกพาธให้ถูกต้องตามที่ได้อัพโหลดไว้ด้วย ในที่นี่ผมเก็บไฟล์ facebook.php ไว้ในที่เดียวกันกับไฟล์ fblogin.php ครับ
$config = array(
'appId' => 'ใส่เลขรหัส app id ของคุณที่นี่', // มีเครื่องหมาย ' คร่อมหัวท้ายด้วย
'secret' => 'ใส่ชุดรหัส secret ของคุณที่นี่', // มีเครื่องหมาย ' คร่อมหัวท้ายด้วย
'fileUpload' => false, // optional
'allowSignedRequest' => false, // optional, but should be set to false for non-canvas apps
);
$facebook = new Facebook($config);
$user_id = $facebook->getUser();
?>
if($user_id) { // ถ้าผู้เข้าชมมีการ Login facebook ในเว็บไซต์เราแล้วให้แสดงผลต่อไปนี้
try {
$user_profile = $facebook->api('/me','GET');
echo "ชื่อ facebook : " . $user_profile['name'];
$params = array( 'next' => 'http://www.naitam.com/' ); // เว็บไซต์ของคุณ
$logout_url = $facebook->getLogoutUrl($params); // $params is optional.
echo " ออกจากระบบ Facebook "; // คุณอาจเปลี่ยนเป็นรูปภาพที่สวยงามแทนข้อความ
} catch(FacebookApiException $e) {
// If the user is logged out, you can have a
// user ID even though the access token is invalid.
// In this case, we'll get an exception, so we'll
// just ask the user to login again here.
$login_url = $facebook->getLoginUrl();
echo 'กรุณาเข้าสู่ระบบด้วย facebook'; // คุณอาจเปลี่ยนเป็นรูปภาพที่สวยงามแทนข้อความ
error_log($e->getType());
error_log($e->getMessage());
}
} else {
// ถ้าผู้เข้าชมยังไม่มีการ Login facebook ในเว็บไซต์ ให้แสดงลิงค์เข้าสู่ระบบแทน
$login_url = $facebook->getLoginUrl();
echo 'กรุณาเข้าสู่ระบบด้วย facebook'; // คุณอาจเปลี่ยนเป็นรูปภาพที่สวยงามแทนข้อความ
}
?>
(8) ปัญหาสำคัญ คือ ฐานข้อมูลภาษาไทยในระบบ facebook เข้ารหัสเป็น utf-8
ดังนั้น ต้องระมัดระวังจุดนี้ให้ดี คือ ให้เก็บค่าตัวแปร Array
$user_profile[] ลงใน mySQL ด้วยรหัส UTF-8 นะครับ แล้วค่อย Redirect
ไปเข้าหน้าเว็บไซต์ภาษาไทยอีกที ซึ่งสำคัญมากสำหรับคนที่ใช้รหัสฐานข้อมูล
mySQL เป็น TIS-620 อยู่นะครับ
แหล่งข้อมูลอ้างอิง
1) เริ่มต้นสร้าง facebook SDK for PHP
https://developers.facebook.com/docs/php/gettingstarted/
2) สอนวิธีการใช้ PHP SDK และ Class พื้นฐานของ facebook
https://developers.facebook.com/docs/reference/php/
3) API ของ User ที่เปิดให้ใช้งาน
https://developers.facebook.com/docs/graph-api/reference/user
4) หน้า Home สำหรับนักพัฒนาของ facebook
https://developers.facebook.com/
* หากใครพบปัญหารบกวนสอบถามผมผ่าน Line ID ชื่อ naitam ได้นะครับ
* เครดิตบทความจากคุณ naitam