วิธีติดตั้ง/ใช้งาน Facebook SDK (PHP) v5 by

30
Aug
0

ตอนนี้ Facebook SDK ของ PHP ก็ก้าวมาสู่ version 5 กันแล้ว มีขั้นตอนติดตั้งดังนี้ (สำหรับ Linux นะ ถ้า Windows Download ตัวนี้ไปเลย)

การติดตั้ง

1. รันคำสั่งตามด้านล่างใน bash เพื่อติดตั้ง composer (Facebook เก็บตัว Code ไว้ที่นี่) ถ้าใครไม่รู้จัก composer มันคือตัวจัดการ library และ dependency ของ library ต่างๆ ของ php ถ้าใครเคยใช้ nodejs มาก่อนให้นึกถึง npm ครับคล้ายๆ กัน
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === 'e115a8dc7871f15d853148a7fbac7da27d6c0030b848d9b3dc09e2a0388afed865e6a3d6b3c0fad45c48e2b5fc1196ae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

2. รันครบเราจะได้ไฟล์ composer.phar มา ก็เอาไปเก็บไว้ไหนก็ได้ตามสะดวก

3. เพิ่มด้านล่างเข้าไฟล์ composer.json หากยังไม่เคยมีมาก่อนให้สร้างขึ้นใหม่เลย
{
"require" : {
"facebook/php-sdk-v4" : "~5.0"
}
}

4. ./composer.phar install

5. ใช้งานได้เรียบร้อย

การใช้งาน

1. ตั้งต้น code ดังนี้ โดยส่วนนี้เน้นการใช้งานกับ Canvas ของ Facebook App (directory vendor อยู่ตำแหน่งเดียวกับ composer.json)

require 'vendor/autoload.php';

use Facebook\FacebookCanvasLoginHelper;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookRequestException;

$fb = new Facebook\Facebook([
'app_id' => '{app-id}',
'app_secret' => '{app-secret}',
'default_graph_version' => 'v2.7', // แก้เวอร์ชั่นเป็นเวอร์ชั่นล่าสุด ตรวจสอบได้ที่ https://developers.facebook.com/tools/explorer ว่าเวอร์ชั่นล่าสุดเป็นอะไร
'persistent_data_handler'=>'session'
]);

$helper = $fb->getCanvasHelper();
try {
$access_token = $helper->getAccessToken();
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// There was an error communicating with Graph
die( "Error: ". $e->getMessage() );
//exit;
}
$this->setDefaultAccessToken((string) $access_token);

2. การ Redirect ไปขอ permission การใช้งาน Facebook App ครั้งแรก

$helper = $fb->getRedirectLoginHelper();
$permissions = ['email', 'user_likes']; // optional
$loginUrl = $helper->getLoginUrl('http://{your-website}/login-callback.php', $permissions);
header("Location: ".$loginUrl)
exit;

3. ตัวอย่างการใช้งาน graph api ที่ได้ค่ากลับมาเป็น JSON เรียบร้อย
try {
$response = $fb->get('/me');
$json_data = $response->getDecodedBody();
} catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
}

ข้อพึงระวังคือ facebook SDK ใช้การตรวจจับว่าเว็บไซต์ของเราเป็น https หรือไม่จาก header ชื่อ SERVER_PORT (ใน php เรียกโดยผ่านตัวแปร $_SERVER['SERVER_PORT']) ดังนั้นหาก server ของคุณมีการใช้ nginx หรือ webserver ตัวอื่นๆ ในการโยน request ต่อกันหลายๆ ทอดจนทำให้ https ดันระบุ port ผ่านตัวแปรนี้เป็น 80 แทนก็ให้ระวังไว้ด้วยครับ facebook SDK ไม่ได้เช็คค่าจาก $_SERVER['HTTPS'] ดังนั้นเราอาจต้อง Hack code แก้ตรงนี้เอง

Enjoy this article?

Consider subscribing to our RSS feed!

ไม่มีความเห็น

ยังไม่มีความเห็น

ใส่ความเห็น

RSS feed for comments on this post