Facebook API là một nền tảng để xây dựng các ứng dụng trên mạng xã hội, API cho phép thao tác đến các nguồn dữ liệu trên mạng xã hội Facebook, thông tin tài khoản người dùng, đăng tải và quảng bá thông tin nhanh chóng.Facebook API sử dụng giao thức RESTful và dữ liệu được trả về dưới dạng JSON.
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO
ĐỀ TÀI TÌM HIỂU WEB API VÀ ỨNG DỤNG
MÔN:
CÁC CÔNG NGHỆ LẬP TRÌNH HIỆN ĐẠI
FACEBOOK API
Sinh viên thực hiện:
Hoàng Mạnh Phú 1142067 Nguyễn Thanh Loan 1141071
Trang 2I Facebook API
Facebook API là một nền tảng để xây dựng các ứng dụng trên mạng xã hội, API cho phép thao tác đến các nguồn dữ liệu trên mạng xã hội Facebook, thông tin tài khoản người dùng, đăng tải và quảng bá thông tin nhanh chóng Facebook API sử dụng giao thức RESTful và dữ liệu được trả về dưới dạng JSON
1. Graph API
- Ban đầu, facebook sử dụng bộ API là REST Api để phát triển, tuy nhiên sau đó Facebook đã xây dựng một hệ thống API mới và đặt tên
là Graph API
- Graph API cung cấp nhiều phương thức hơn, dễ hiểu, dễ sử dụng hơn
so với REST API
- Graph API cung cấp ba phương thức cơ bản: requesting data (yêu cầu
dữ liệu), posting data (gửi dữ liệu), deleting data (xóa dữ liệu)
OBJECT
o Mỗi đối tượng trên Facebook đều có một ID riêng và duy nhất
o Truy vấn thông tin của dối tượng thông qua Graph API bằng liên kết: https://graph.facebook.com/[ ID] với [ID] là ID của đối tượng cần truy vấn
VD: ID của Mark Zuckerberg là 4 Kết quả khi truy vấn đường
link https://graph.facebook.com/4 là:
o Ngoài ra, đối với user và fanpage, cũng có thể truy vấn qua đường link sử dụng username:
https://graph.facebook.com/[user_name], kết quả trả về tương
tự như truy vấn thông qua ID VD: username của Mark Zuckerberg là zuck Kết quả khi truy vấn đường link https://graph.facebook.com/zuck tương tự như trên
ACCESS_TOKEN
Trang 3o Access token là chuỗi được phát sinh ngẫu nhiên, được cung cấp một cách tạm thời, sử dụng trong các câu truy vấn trên facebook, giúp đảm bảo tính bảo mật thông tin
o Access token của Facebook được phát sinh theo chuẩn Oauth 2.0
CONNECTIONS
o Mỗi đối tượng trên Facebook đều có liên kết với nhau, gọi
chung là connections Quan hệ này có thể truy vấn thông qua
liên kết https://graph.facebook.com/[ID]/[CONNECTION_TYPE]
o Để truy vấn các connections này, khi sử dụng API cần phải cung
cấp chuỗi access_token, vì những dữ liệu này cần được bảo mật, chỉ khi cung cấp đúng access_token và access_token còn hiệu lực thì mới truy vấn được dữ liệu
o VD: Truy vấn danh sách bạn bè của người dùng hiện tại:
https://graph.facebook.com/me/friends?
access_token=[ACCESS_TOKEN]
Trang 4o Một số truy vấn khác:
Trang 52. Social Plugins
- Social Plugins là tập hợp những ứng dụng tiện ích mà Facebook đã xây dựng sẵn với mục đích đem lại sự tương tác giữa Facebook và website, tăng sức mạnh quảng bá website và giới thiệu sản phẩm
- Các ứng dụng chính:
o Like button: nhúng nút “Like” của Facebook vào website, khi
người dùng click nút “Like” tại website, thông tin sẽ được đăng tải lên Facebook ngay lập tức
o Send button: tương tự Like button, khi
người dùng click nút “Send” tại website thì đường dẫn tới website sẽ được share lên Facebook dưới dạng bài viết, tin nhắn Facebook hoặc qua email
o Subcribe button:
website, giúp cho người dùng có thể đăng ký theo dõi website nhanh chóng
o Comment box: tiện ích giúp nhúng khung
bình luận của Facebook vào website Khi người dùng muốn bình luận một bài viết
Trang 6nào đó, họ chỉ cần đăng nhập với account Facebook là có thể bình luận, thông tin bình luận cũng sẽ được chia sẻ lên Facebook
o Activity Feed: khung tiện ích nhúng vào
website giúp hiển thị những thông tin được cập nhật trên Fan page của Facebook lên website
o Recommendations box: hiển thị danh
sách những Fan page trên facebook, với mục đích giúp giới thiệu những Fan
o Recommendations bar: tiện ích cho
phép người dùng có thể “Like” và giới thiệu nội dung mà họ đang đọc đến bạn bè của họ trên Facebook
o Like box: nhúng khung hiển thị danh sách
những users đã từng “Like” Fan page của website trên Facebook
o Login button: nút đăng nhập, giúp cho
người dùng có thể đăng nhập website bằng chính tài khoản Facebook của họ
o Registration: nút đăng ký, giúp người
dùng có thể đăng ký làm thành viên của website bằng tài khoản Facebook của họ
o Facepile: tiện ích hiển thị danh sách
những người đã “Like” trang Fan page, kèm theo avatar của họ
- Cách sử dụng: truy cập địa chỉ
https://developers.facebook.com/docs/plugins/
Sau đó lựa chọn loại plugin cần sử dụng, nhập các dữ liệu cần thiết vào form của Facebook sau đó copy đoạn mã Javascript HTML5 / XFBML hoặc IFRAME và nhúng vào website
3. Facebook FQL
Trang 7- FQL là ngôn ngữ truy vấn do Facebook đặt ra, giúp cho developer có thể truy vấn đến dữ liệu trên Facebook thông qua những câu truy vấn tương tự như SQL
- FQL cung cấp một số tính năng mà Graph Api không có, cung cấp cả những truy vấn lồng nhau
- VD về FQL:
SELECT uid2 FROM friend WHERE uid1=me() SELECT name FROM album WHERE owner= me()
- Không giống với SQL, mệnh đề FROM trong câu truy vấn trong FQL chỉ chứa duy nhất một bảng
- Truy vấn lồng:
SELECT uid, name, pic_square FROM user WHERE uid
= me()
OR uid IN (SELECT uid2 FROM friend WHERE uid1 =
me())
- Danh sách các table mà Facebook cho phép truy vấn:
http://developers.facebook.com/docs/reference/fql/toc/
Trang 9II Facebook SDK
Facebook SDK giúp cho lập trình viên có thể tích hợp sâu hơn với Facebook
để xây dựng các ứng dụng phức tạp hơn Sử dụng SDK giúp cho lập trình viên thao tác với Graph API và các tài nguyên trên Facebook dễ dàng, nhanh chóng hơn
Hiện nay Facebook đã xây dựng các SDK cho những nền tảng khác nhau:
- Facebook SDK for JavaScript
- Facebook SDK for PHP
- Facebook SDK for iOS
- Facebook SDK for Android
1. Facebook App
- Để sử dụng được các SDK, lập trình viên cần phải đăng ký và cung cấp API key, Secret key cho SDK
- Để có API key và Secret key, lập trình viên phải tạo một App trên Facebook tại địa chỉ:
https://developers.facebook.com/apps/?action=create
+ Điền các thông tin được Facebook yêu cầu, nhập mã Captcha
+ Thiết lập URL login, Canvas URL, Page Url
Trang 10- Sau khi tạo xong App, hai thông tin cần thiết nhất của App là Api key và Secert key:
2. Giới thiệu về PHP SDK & Javascript SDK
a) Php SDK
- Địa chỉ download: https://github.com/facebook/facebook-php-sdk
- Cách sử dụng:
o Khởi tạo đối tượng $facebook
Thay YOUR_APP_ID và YOUR_APP_SECERT bằng Api key và Secert key có được lúc tạp App trên Facebook
Trang 11o Cách kểm tra quyền hạn user:
Mục đích: kiểm tra xem người truy cập ứng dụng đã đăng nhập Facebook hay chưa và có đồng ý sử dụng App hay không
Đoạn mã kiểm tra:
+ Sử dụng hàm $facebook –getUser(); để lấy ID của user hiện đang đăng nhập Facebook và đang sử dụng App
+ Nếu $user_id = 0, nghĩa là user chưa đăng nhập hoặc chưa cấp quyền hạn cho app Lúc này ứng dụng cần phải chuyển đến trang đăng nhập của Facebook để user đăng nhập và cấp quyền hạn cho app
Trong đó:
$params là mảng các tham số để facebook khởi tạo đường link login Scope là danh sách các quyền hạn mà app yêu cầu người dùng cho phép (để có thể truy xuất thông tin) Scope được quy định tại:
https://developers.facebook.com/docs/concepts/login/per missions-login-dialog/
Hàm $facebook -> getLoginUrl($param) là hàm tạo ra link đến trang login của facebook Khi người dùng được chuyển đến link này và đăng nhập thành công, họ sẽ được yêu cầu cho phép app sủ dụng các quyền hạn định
Trang 12nghĩa trong $params[‘scope’] Sau đó họ sẽ được chuyển ngược trở lại trang web gán trong $params[‘redirect_uri’]
o Cách truy vấn dữ liệu Gaph API:
Phương thức $facebook -> api(….); được sử dụng để thực thi các truy vấn Graph Api và cả FQL
Cách lấy thông tin người dùng:
Để lấy thông tin của một user khác thì cần phải có kèm theo access_token khi truy vấn
o Cách gọi hàm FQL
b) Javascript SDK
Thao tác đến Graph API bằng Javascript Javascript SDK cũng sử dụng Api key và Secert key, do đó cần tạo và cấu hình App trên Facebook trước
- Cách khai báo, khởi tạo đối tượng Facebook:
o Khai báo thêm namespace cho thẻ html
Trang 13o Khai báo thẻ trong phần body của file html Thẻ này là thẻ bắt buộc phải có để Javascript SDK có thể chạy được
o Khai báo đoạn mã Javascript khởi tạo đối tượng Facebook, đoạn mã này phải đặt sau thẻ
- Các phương thức mà Javascript SDK hỗ trợ:
FB.api() : truy vấn qua Graph API
FB.getLoginStatus() : lấy trạng thái đăng nhập của user
FB.getSession() : lấy session đăng nhập của user, trong session sẽ chứa access_token
FB.init() : hàm khởi tạo đối tượng Facebook
FB.login() : đăng nhập
FB.logout(): đăng xuất
FB.ui() : tạo ra các hộp thoại của Facebook, như: hộp thoại post status, hộp thoại share friends…
- Cách truy vấn Graph API
Hàm successCall sẽ được gọi tự động khi hàm FB.api() xử lý thành công và có kết quả trả về từ server
- Tạo hộp thoại để post status lên wall:
Trang 14III Các vấn đề khác:
- Nhúng Facebook app vào fanpage
- Facebook Ads API
- Facebook Open Graph
- Faceook iOS SDK
- Faceook Android SDK
IV Xây dựng ứng dụng Demo
1. Mô tả ứng dụng:
- Tên ứng dụng: “Thỉnh Thầy”
- Mô tả: là một ứng dụng giải trí vui, khi người dùng nhập một câu hỏi, câu hỏi sẽ được đưa lên server xử lý và trả về câu trả lời Câu trả lời
có tính chất bao quát hầu hết câu hỏi và được random ngẫu nhiên Sau khi nhận được câu trả lời, người dùng có thể đăng câu câu trả lời kèm câu hỏi lên trên tường của mình
- Địa chỉ ứng dụng: https://apps.facebook.com/thinhthayvui
- Nền tảng xây dựng: Php + Jquery + Facebook Php SDK + Facebook Javascript SDK
2. Hình ảnh ứng dụng:
Trang 15V Kết luận:
- Facebook ngày càng trở nên phổ biến, việc sử dụng Facebook APIs để phát triển, tạo ra các ứng dụng mạng xã hội đem lại rất nhiều lợi ích cho doanh nghiệp
- Facebook sử dụng hệ thống API riêng, xây dựng dựa trên RESTful webservice và đặt tên là Graph API
- Facebook đã xây dựng sẵn rất nhiều bộ SDK, giúp cho lập trình viên sử dụng một cách tiện lợi và nhanh chóng, thao tác đến Graph API dễ dàng
- Để sử dụng được bộ SDK thì lập trình viên cần tạo một App trên Facebook để
có được API key và Secert key
VI Tài liệu tham khảo:
- Faceook APIs reference:
https://developers.facebook.com/docs/reference/apis/
- Facebook SDKs reference:
https://developers.facebook.com/docs/sdks/
- Facebook Social Plugins:
https://developers.facebook.com/docs/plugins/
- Facebook Developer Wiki:
http://fbdevwiki.com/wiki/Facebook_Developer_Wiki