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
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 action="" method="post" id="get_facebook_id_form">
Enter your personal Facebook profile URL: <br />
<input type="text" placeholder="http://www.facebook.com/YourProfileName" name="facebook_profile" size="50" id="get_facebook_page_input" value=""/>
<input type="submit" name="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 type="text/javascript">
$(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
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
if(isset($result)) {
if(!empty($result))
echo '
Success! If your name is '. $name .', then we found your numeric ID: '. $result .'';
else
echo "
Unable to lookup Facebook numeric ID.";
}
?>
Và đây là kết quả demo nhận được
Hi vọng bài viết này sẽ giúp ích cho các bạn. Thân ái!
Chia sẻ Facebook |