Facebook Graph API là một công cụ quan trọng trong việc kết nối và tương tác với dữ liệu xã hội trên Facebook. Trong bài viết này, chúng ta sẽ tìm hiểu về Facebook Graph API và cách sử dụng nó để tải và truy vấn dữ liệu từ đồ thị xã hội của Facebook.
Facebook Graph API là gì?
1.1 Định nghĩa về API
Trước tiên, chúng ta hãy tìm hiểu về khái niệm API. API (Application Programming Interface) là giao diện lập trình ứng dụng, cho phép chúng ta kết nối và tương tác với các thư viện và ứng dụng khác. Mỗi nền tảng như Windows, Google, Twitter… đều có API riêng của mình. Với API này, chúng ta có thể tạo ra các ứng dụng bằng cách sử dụng tính năng hoặc dữ liệu có sẵn trên máy chủ của nền tảng đó.
1.2 Định nghĩa về Facebook API
Facebook API là nền tảng do Facebook cung cấp, giúp các nhà phát triển dễ dàng tạo ứng dụng và đảm bảo không can thiệp quá sâu vào hệ thống của Facebook. Thông qua Facebook API, chúng ta có thể lấy thông tin về người dùng như danh sách bạn bè, thông tin cá nhân, ảnh đại diện… nếu họ cấp quyền cho chúng ta truy cập vào trang cá nhân của họ.
Facebook sử dụng phương thức POST để gửi yêu cầu đến máy chủ Facebook API. Yêu cầu này bao gồm các thông số như api_key của ứng dụng, session_key của người dùng. Ngoài ra, Facebook cũng thêm tham số fb_sig để thông báo rằng ứng dụng đã gửi yêu cầu. Cách này giúp đảm bảo tính xác thực của các yêu cầu được gửi từ một ứng dụng đã được chấp thuận.
1.3 Định nghĩa về Facebook Graph API
Từ “Graph” ở đây đề cập đến “đồ thị”. Đồ thị được sử dụng để miêu tả các mối quan hệ giữa các thực thể. Facebook coi các mối quan hệ giữa các thực thể như một “đồ thị xã hội” (Social Graph).
Facebook Graph API là cách chủ yếu để tải dữ liệu vào và lấy dữ liệu ra từ đồ thị xã hội của Facebook. Đây là một HTTP API cấp thấp mà chúng ta có thể sử dụng để truy vấn dữ liệu, đăng trạng thái, tải ảnh lên và thực hiện nhiều nhiệm vụ khác.
Cấu trúc Facebook Graph API
Facebook Graph API được đặt tên theo ý tưởng về “đồ thị xã hội” – đại diện cho thông tin trong mạng xã hội Facebook. Nó bao gồm các phần sau:
- Nodes (nút): Đối tượng riêng như người dùng, ảnh, trang cá nhân, bình luận…
- Edges (cạnh): Kết nối giữa các đối tượng riêng như kết nối giữa hình ảnh và trang chứa hình ảnh đó, bình luận và bức ảnh đã được bình luận…
- Fields (trường): Dữ liệu của đối tượng riêng như tên, ngày sinh của người dùng, tên trang…
Chúng ta sử dụng Facebook Graph API để:
- Sử dụng nodes để lấy dữ liệu về một đối tượng cụ thể.
- Sử dụng edges để lấy tập hợp các đối tượng khác được kết nối với node.
- Sử dụng fields để chỉ định dữ liệu mà chúng ta muốn có trong phản hồi từ Facebook.
2.1 HTTP
Facebook Graph API dựa trên giao thức HTTP, do đó API này hoạt động với bất kỳ ngôn ngữ nào có thư viện hỗ trợ HTTP như cURL và urllib. Bạn cũng có thể sử dụng Facebook Graph API trực tiếp trong trình duyệt của mình.
Ví dụ: https://graph.facebook.com/facebook/picture?redirect=false
tương đương với yêu cầu cURL sau:
curl -i -X GET "https://graph.facebook.com/facebook/picture?redirect=false&access_token={valid-access-token-goes-here}"
2.2 Access token (mã truy cập)
Bạn có thể thấy tham số access_token trong yêu cầu URL ở ví dụ trên. Hầu hết các yêu cầu của Facebook Graph API đều yêu cầu access token và cách dễ nhất để lấy access token là khi người dùng đăng nhập vào ứng dụng của bạn.
2.3 URL lưu trữ
Hầu hết các yêu cầu được gửi đến URL lưu trữ graph.facebook.com
. Riêng video tải lên sử dụng graph-video.facebook.com
.
2.4 Objects ID
Mỗi node trong Facebook Graph API có một ID duy nhất để truy cập thông qua API. Để có thông tin về một node, chúng ta phải truy vấn trực tiếp đến ID của node đó.
GET graph.facebook.com/{node-id}
Nếu bạn muốn lấy dữ liệu cụ thể (fields) về một node, bạn có thể thêm tham số fields và chỉ định trường mà bạn muốn có trong phản hồi.
GET graph.facebook.com/{node-id}?fields=email
Hầu hết các node cũng có edges (cạnh) và chúng có thể trả về tập hợp các đối tượng được kết nối với node đó. Để truy vấn một cạnh, bạn có thể sử dụng cả ID của node và tên cạnh. Ví dụ, nếu bạn muốn truy vấn cạnh photos của một node:
GET graph.facebook.com/{node-id}/photos
Một số node cho phép bạn cập nhật trường bằng cách sử dụng phương thức POST. Ví dụ, nếu bạn là quản trị viên của một trang Facebook, bạn có thể cập nhật trường descriptions như sau:
POST graph.facebook.com/{node-id}?description=haha
Bạn cũng có thể xóa một node bằng cách thực hiện thao tác DELETE trên ID node:
DELETE graph.facebook.com/{node-id}
Sử dụng Facebook Graph API
Để bắt đầu sử dụng Facebook Graph API, truy cập trang dành cho người phát triển: Lão Bạch – Kết nối và yêu thương.
Nếu bạn chưa có ứng dụng trên Facebook, bạn có thể tìm hiểu cách tạo ứng dụng trên trang đó.
Đến Graph API Explorer bằng cách chọn “More” > “Tools” > “Graph API Explorer” hoặc truy cập vào đây.
Trong trang này, bạn sẽ thấy có 4 phần quan trọng cần chú ý:
- Access Token: Đây là mã gửi lên server. Nếu bạn đã đăng nhập vào tài khoản Facebook, giá trị này sẽ được hiển thị mặc định cho tài khoản của bạn. Với mỗi ứng dụng, sẽ có mã mặc định khác nhau.
- URL gửi yêu cầu: Mặc định là
/me?fields=id,name
. - Bên trái màn hình, bạn có thể chọn fields tùy ý để kiểm tra.
- Bên phải màn hình là kết quả trả về sau khi bạn gửi yêu cầu.
Bình thường, ứng dụng chỉ được phép truy cập vào các thông tin công khai của người dùng. Nếu bạn muốn truy vấn thêm thông tin, hãy cấp thêm quyền bằng cách nhấp vào nút “Get Token” > “Get User Access Token”. Một hộp thoại sẽ hiển thị các quyền như user_friends
(lấy danh sách bạn bè), user_birthday
(lấy ngày sinh của người dùng), user_link
(lấy liên kết trong trang cá nhân)… Khi bạn chọn một quyền, hộp thoại khác sẽ hiển thị như sau:
{Hộp thoại}
Trên đây là một số thông tin cơ bản về Facebook Graph API. Để biết thêm chi tiết, hãy tham khảo:
Cảm ơn bạn đã đọc bài viết! Hy vọng nó đã giúp ích cho bạn.