Swift

สอนการใช้ 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 และอื่นๆอีกมากมาย ตามที่เราได้ใช้คำสั่งในการ  เรียกการแสดงผลออกมา 


 




  • มาถึงส่วนนี้ก็เป็นอันเสร็จสมบูรณ์ในการ log in ผ่าน facebook sdk 




The End Facebook Sdk  Login For PHP 


You Might Also Like

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

Flickr Images