news
สอนการใช้ Facebook sdk Login for php
Facebook SDK v5 ที่ใช้ในการ ล็อคอินเข้าสู่ระบบ
ในบทความนี้จะเป็นการสอนการใช้งาน Facebook SDK v5 ที่ใช้ในการ ล็อคอินเข้าสู่ระบบผ่าน Facebook app ให้เชื่อมต่อกับ เว็บของเรา สิ่งที่จำเป็นต้องใช้ใรการ Login มีดังนี้
1. สร้าง ไฟล์ ที่ชื่อ login.php
2. สร้าง ไฟล์ ที่ชื่อ fb-callback.php
เรมามาสร้าง Code login กันดีกว่า
1. ทำการ copy Code ดังต่อไปนี้ไปไส่ใน file login.php
<?php
/*
Facebook SDK Part 1
สอนการใช้ Facebook sdk Login for php
by http://facebook-sdk.blogspot.com/
*/
session_start();
//ทำการเรียก Sesion_start(); เพื่อให้ Sesion ต่างๆทำงาน
require_once __DIR__ . '/src/Facebook/autoload.php';
//ทำการสร้างการดึงไฟล์ต่างๆ
//ของ facebook sdk ด้วยคำสั่ง require_once __DIR__ .'ตามด้วย ที่เก็บ file autoload.php '
$fb = new Facebook\Facebook([
'app_id' => '740357906069989',
'app_secret' => '85be710ace9ac4e630fdcff56e51bdbd',
'default_graph_version' => 'v2.4',
]);
//เป็นการสร้างคำสั่ง เพื่อ เก็บค่า app_id ,app_secret และ เวิอชั่นเริมต้นของ Graph API
$helper = $fb->getRedirectLoginHelper();
//เป็นการ นำค่าของ app_id ,app_secret, Graph API ที่เก็บไว้ในตัวแปล $fb ไปตรวจสอบ ผ่านgetRedirectLoginHelper()
$permissions = ['email']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://localhost/facebook-adk-Manually/fb-callback.php', $permissions);
//เมื่อ ผ่าน จะส่งค่าที่ได้ไปยัง fb-callback.php เพื่อที่จะได้ใช้งานต่อ
echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>';
2. ทำกา copy Code ดังต่อไปนี้ไปไส่ใน file fb-callback.php
<!doctype html>
<html>
<meta charset="utf-8">
<?php
session_start();
//ทำการเรียก Sesion_start(); เพื่อให้ Sesion ต่างๆทำงาน
require_once __DIR__ . '/src/Facebook/autoload.php';
//ทำการสร้างการดึงไฟล์ต่างๆ
//ของ facebook sdk ด้วยคำสั่ง require_once __DIR__ .'ตามด้วย ที่เก็บ file autoload.php '
$fb = new Facebook\Facebook([
'app_id' => '740357906069989',
'app_secret' => '85be710ace9ac4e630fdcff56e51bdbd',
'default_graph_version' => 'v2.4',
]);
$helper = $fb->getRedirectLoginHelper();
try {
$accessToken = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (! isset($accessToken)) {
if ($helper->getError()) {
header('HTTP/1.0 401 Unauthorized');
echo "Error: " . $helper->getError() . "\n";
echo "Error Code: " . $helper->getErrorCode() . "\n";
echo "Error Reason: " . $helper->getErrorReason() . "\n";
echo "Error Description: " . $helper->getErrorDescription() . "\n";
} else {
header('HTTP/1.0 400 Bad Request');
echo 'Bad request';
}
exit;
}
// Logged in
echo '<h3>Access Token</h3>';
var_dump($accessToken->getValue());
// The OAuth 2.0 client handler helps us manage access tokens
$oAuth2Client = $fb->getOAuth2Client();
// Get the access token metadata from /debug_token
$tokenMetadata = $oAuth2Client->debugToken($accessToken);
echo '<h3>Metadata</h3>';
var_dump($tokenMetadata);
// Validation (these will throw FacebookSDKException's when they fail)
//$tokenMetadata->validateAppId($config['app_id']);
// If you know the user ID this access token belongs to, you can validate it here
// $tokenMetadata->validateUserId('123');
$tokenMetadata->validateExpiration();
if (! $accessToken->isLongLived()) {
// Exchanges a short-lived access token for a long-lived one
try {
$accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken);
} catch (Facebook\Exceptions\FacebookSDKException $e) {
echo "<p>Error getting long-lived access token: " . $helper->getMessage() . "</p>";
exit;
}
echo '<h3>Long-lived</h3>';
var_dump($accessToken->getValue());
}
$_SESSION['fb_access_token'] = (string) $accessToken;
// User is logged in with a long-lived access token.
// You can redirect them to a members-only page.
// header('Location: https://example.com/members.php');
3. ทดสอบการทำงาน เปิดบลาวเชอร์ ขึ้นมาแล้ว พิมพ์ Url http://localhost/facebook-adk-Manually/login.php จะได้ดังรูป
- คลิก Log in with Facebook! จะได้
- คลิก ตกลง ก็จะได้หน่าการแสดงผล ในไฟล์ fb-callback.php ที่ถูกส่งค่ามาจากการ login ในส่วนค่าที่ได้ออกมาก็จะมีค่า access Token ,app_id ,ชื้อ application และอื่นๆอีกมากมาย ตามที่เราได้ใช้คำสั่งในการ เรียกการแสดงผลออกมา




0 ความคิดเห็น