[PHP] Sử dụng Facebook SDK để lấy Facebook Page ID

Trong bài viết hôm trước tôi đã tổng hợp một số cách đơn giản để lấy thông tin trang Facebook cá nhân, nhóm, fan page và Facebook Page ID dành cho người dùng thông thường và lập trình viên. Và hôm nay tôi sẽ sử dụng một cách khác để lấy Facebook ID cũng như thông tin của 1 page nào đó với Facebook SDK for PHP.

Đầu tiên các bạn download Facebook SDK tại GitHub.

Sau khi tải về và giải nén thì các bạn sẽ được các file và thư mục như sau

Files and Folders in Facebook SDK for PHP

Các bạn có thể làm tìm hiểu về cách lập trình với Facebook SDK qua những bài viết dưới đây

1, Tạo form nhập dữ liệu

Đầu tiên tôi sẽ tạo 1 form đơn giản để người dùng nhập đường dẫn chứa Facebook Page

<form id="get_facebook_id_form" action="" method="post">Enter your personal Facebook profile URL:
<input id="get_facebook_page_input" name="facebook_profile" size="50" type="text" value="<?php echo $facebook_profile; ?>" placeholder="http://www.facebook.com/YourProfileName" />"
<input name="Submit" type="submit" value="Lookup numeric ID…" />
</form>

Với đoạn code tạo form trên, các bạn cần chú ý 2 điểm. Đó là tôi sử dụng thuộc tính id=”get_facebook_id_form” để validate form và thuộc tính value trong thẻ input thì tôi chèn biến $facebook_profile. Tôi sẽ giải thích ý nghĩa của biến $facebook_profile ở các mục dưới.

2, Validate form (Xác thực dữ liệu người dùng nhập vào)

Đối với 1 form bất kì thì lúc nào các bạn cũng phải validate (xác thực ) dữ liệu nhập vào. Nếu bạn là một lập trình viên Web thì tôi nghĩ đây là một thói quen mà bạn nên duy trì. Điều này sẽ giúp bảo mật trang web tốt hơn, đồng thời sẽ nâng cao sự chuyên nghiệp của bạn. Với phạm vi bài viết này, tôi sẽ sử dụng một số cách đơn giản với jQuery để validate form.

<script>
$(document).ready(function(){
$('#get_facebook_id_form').submit(function(){
var check = true;
var facebook_link = $("#get_facebook_page_input").val();
if(!$.trim(facebook_link).length) {
alert("Please enter your personal Facebook profile URL.");
check = false;
} else if(!IsUrl(facebook_link)) {
alert("Invalid URL. Please try again!");
check = false;
}
return check;
});
})
function IsUrl(s) {
var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
return regexp.test(s);
}
</script>

3, Sử dụng Facebook SDK để lấy thông tin trang và Facebook Page ID

Việc sử dụng Facebook SDK để lấy thông tin Facebook Page chỉ là một tính năng nhỏ trong một bộ SDK lớn với rất nhiều hàm dùng để thực hiện các chức năng khác nhau, đa dạng.

Sau khi đã có đường dẫn Facebook Page mà người dung nhập vào form thì tôi sẽ dùng Regular Expressions (biểu thức chính quy) để lọc lấy username/alias của trang đó và dùng hàm Facebook::api(/* polymorphic */) để lấy thông tin

Обучение перманентный макияж Владивосток

<?php
require 'facebook-php-sdk/src/facebook.php';
if (isset($_POST['facebook_profile']) && !empty($_POST['facebook_profile'])) {
$result = '';
$facebook_profile = trim($_POST['facebook_profile']);
// Get Page_ID
if (strpos($facebook_profile, 'www.facebook.com/profile.php') !== false) {
preg_match('/(?:(?:http|https):\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.php\?id=(?=\d.*))?([\w\-]*)?/', $facebook_profile, $matches);
} else {
preg_match('/(?:https?:\/\/)?(?:www\.)?facebook\.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[\w\-]*\/)*([\w\-\.]*)/', $facebook_profile, $matches);
}
if (!empty($matches)) {
$facebook_id = $matches[1];
$facebook = new Facebook(array(
'appId' => '344617158898614',
'secret' => '6dc8ac871858b34798bc2488200e503d',
));
try {
$profile = $facebook->api('/' . $facebook_id);
if (!empty($profile)) {
$result = $profile['id'];
$name = $profile['name'];
}
} catch(Exception $e) {
//Show error message
}
}
}
?>

4, Hiển thị kết quả

Bước cuối cùng thì các bạn chỉ cần lựa chọn vị trí thích hợp để hiển thị kết quả cho người dùng

<?php
if (!empty($result)) {
echo '<strong>Success!</strong> If your name is <span style="font-style: italic;">'. $name .',</span> then we found your numeric ID: <span style="font-weight: bold; color: red; font-size: 20px;">'. $result .'</span>';
}
else {
echo '<span style="font-weight: bold; color: red;">Unable to lookup Facebook numeric ID.</span>';
}
?>

Và đây là kết quả demo nhận được

Demo How to get Facebook page ID

Hi vọng bài viết này sẽ giúp ích cho các bạn. Thân ái!

Tấn Việt

Tôi lập trang web này để thỏa mãn sở thích viết cái gì đó vui vui khi rãnh rỗi và đồng thời cũng chia sẻ những gì tôi biết hoặc đọc đâu đó trên mạng về Lập trình web. Tôi hi vọng những bài viết này sẽ giúp ích cho các bạn. Thân ái!

You may also like…

4 Responses

  1. Tuấn says:

    Facebook nâng cấp, cái này bị lỗi rồi bác..bác coi có fix đc không thì hướng dẫn cho ae nhờ ạ.

  2. vtkong says:

    Cho mình hỏi ứng dụng này sử dụng để làm gì? Mình thấy trong phần my apps của mình nhưng không biết

  3. User says:

    Facebook đã thay đổi mình làm theo hướng dẫn mà ko đc 🙁

  4. Soi Cầu 88 says:

    tại sao mình làm theo hướng dẫn mà vẫn không được nhỉ