Ads 468x60px

CSS

Thứ Hai, 16 tháng 4, 2012

Tìm hiểu tí Facebook Graph API và cách để có một application đầu tiên trên facebook , 24 HTML

(24 html) Lần này ta thử tìm hiểu tí chút về Facebook Graph API và cách để có một application đầu tiên trên facebook. Mới nghe thì khó chứ thực ra dễ ẹt Nói nôm na thì nó có mấy bước thế này.


  1. Đăng kí app tại đây : http://www.facebook.com/developers/apps.php
  2. Đọc tài liệu tại đây : http://developers.facebook.com/docs
  3. Down Facebook PHP SDK tại đây : http://github.com/facebook/php-sdk
  4. Bắt tay vào thực hiện thôi
Trong khi đăng kí chú ý thông số “Canvas URL” chính là đường dẫn đến app thực sự của ta. Vì facebook không host file nên ta vẫn phải có hosting để chạy app.
Đầu tiên ta viết file global.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
require '../inc/facebook.php';
$appid = '47098887833';
$appsecret = '**************';
$canvas_base_url = '**************';
// Create our Application instance.
$facebook = new Facebook(array(
                           'appId'  => $appid,
                           'secret' => $appsecret,
                           'cookie' => true,));
$session = $facebook->getSession();
$fbme = null;
if ($session) {
    try {
        $fbme = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        error_log($e);
    }
}
$appid và $appsecret lấy trong application mình đăng kí. $canvas_base_url chính là“Canvas URL”.
Ta kiểm tra $session và get thử thông tin của người dùng về qua biến $fbme. Nếu $fbme = NULL có nghĩa là user chưa đăng nhập. Khi đó phải tạo một đường link đăng nhập để application có thể có quyền truy xuất các thông tin từ facebook.
1
2
3
4
5
6
7
8
if (!$fbme) {
 $loginUrl = $facebook->getLoginUrl(array('canvas' => 1,
                                          'fbconnect' => 0,
                                          'req_perms' => 'read_friendlists,friends_birthday',
                                          'next' => $canvas_base_url . 'index.php',
                                          'cancel_url' => $canvas_base_url ));
 echo '<fb:redirect url="' . $loginUrl . '" />';
}
Ở đây, ta dùng hàm getLoginUrl() để khởi tạo link login. Và dùng FBML để redirect thằng tới link đó, các app facebook thường làm như vậy vì đằng nào nếu không get quyền cũng không chạy được.
req_permsở đây là các quyền mà app của ta có thể truy xuất được. Như trong ví dụ làread_friendlists và friends_birthday. Có thể xem thêm Extended Permission ở đây:http://developers.facebook.com/docs/authentication/permissions
Khi đã có quyền truy xuất dữ liệu. Ta hãy thử một ví dụ sau đây
1
2
3
4
$friends = $facebook->api('/me/friends?fields=id,name,birthday');
foreach ($friends[data] as $friend) {
   echo '<fb: profile-pic uid="$friend[id]" size="square" />';
}
Đoạn trên sẽ hiển thị avatar của toàn bộ friend list khi user sử dụng app. Nếu print_r sẽ thấy mối user có 3 thông tin là id, name và birthday.
Thật đơn giản, đúng không. Mình đã viết 1 app đơn giản để test Graph cho những ai thích nghịch ngợm, có cả FQL Query nữa : http://apps.facebook.com/zinkidotinfo
facebook app Write your first Facebook Application
Sau đây là hàm dùng để post message lên wall của user. Yêu cầu có quyềnpublish_stream.
1
2
3
4
5
6
7
8
9
$attachment = array('message' => 'is testing graph',
                    'name' => 'Test Graph API for Facebook',
                    'link' => 'http://zinki.info',
                    'picture' => 'http://img191.imageshack.us/img191/1129/08a5754c.jpg',
                    );
$result = $facebook->api('/me/feed/',
                            'post',
                            $attachment);
Muốn test thì vào cái apps test của mình sang phần Test Graph thử là thấy ngay.
Hi vọng bài viết này có ích cho những người muốn phát triển ứng dụng trên facebook.

Click vào G+ bên dưới nếu bài viết hữu ít đối với bạn ! thanks .^-^.

3 nhận xét:

  1. mình muốn hỏi từ Graph API. Thì API đây là viết tắt của từ nào
    P: Platform
    P: Protocol
    hay P: Programing
    ?

    Trả lờiXóa
    Trả lời
    1. Nhận xét này đã bị tác giả xóa.

      Xóa
    2. API là viết tắt của Application Programming Interface được hiểu là Giao diện lập trình ứng dụng.

      Xóa