Tutorial 2x Hướng dẫn Khai thác XenForo REST API cho người mới bắt đầu

PVS

Super Moderator
Thành viên BQT
Hướng dẫn Khai thác XenForo REST API cho người mới bắt đầu

Bạn đã bao giờ muốn tự động đăng bài lên diễn đàn từ một nguồn tin khác? Hay muốn xây dựng một trang thống kê tùy chỉnh? Hoặc đồng bộ hóa người dùng với một hệ thống khác? Tất cả những điều đó và hơn thế nữa đều có thể thực hiện được thông qua XenForo REST API.

khai-thac-XenForo-REST-API.png

Vậy API là gì? Hãy tưởng tượng API (Giao diện lập trình ứng dụng) như một người phục vụ trong nhà hàng. Thay vì bạn tự ý chạy vào bếp (database) để lấy đồ ăn (dữ liệu), bạn đưa yêu cầu cho người phục vụ (API). Người phục vụ sẽ vào bếp, lấy đúng món bạn gọi theo đúng quy tắc và mang ra cho bạn. REST API là một loại API rất phổ biến, sử dụng các phương thức HTTP chuẩn (GET, POST, DELETE...) để giao tiếp.

Bài viết này sẽ là hướng dẫn nhập môn, giúp bạn thực hiện các lệnh gọi API đầu tiên đến diễn đàn XenForo của mình một cách dễ hiểu nhất.

Ba "Chìa khóa" để Giao tiếp với API​


Để một yêu cầu API được chấp nhận, bạn cần cung cấp đủ ba thông tin xác thực, giống như ba chiếc chìa khóa để mở một cánh cửa.

Chìa khóa 1: API Key (Khóa API)​

Đây là một chuỗi ký tự bí mật, chứng minh rằng yêu cầu của bạn là hợp lệ và được phép truy cập.
Cách tạo:
  1. Truy cập AdminCP > Setup > API keys.
  2. Nhấp vào + Add API key.
  3. Key type: Chọn Super user key. Loại khóa này có toàn quyền như một quản trị viên tối cao, rất lý tưởng cho các tập lệnh (script) đáng tin cậy chạy trên máy chủ của bạn.
  4. Key title: Đặt một cái tên để dễ nhận biết, ví dụ "My Awesome Script".
  5. Nhấn Save. Hệ thống sẽ tạo ra một chuỗi ký tự dài. Hãy sao chép và cất giữ nó cẩn thận.

Chìa khóa 2: User Context (Ngữ cảnh Người dùng)​

Ngay cả khi dùng Super user key, bạn vẫn phải cho XenForo biết hành động này đang được thực hiện nhân danh người dùng nào. Điều này được thực hiện bằng cách gửi kèm một header trong yêu cầu API.
  • Header:XF-Api-User
  • Giá trị: ID của người dùng (ví dụ: 1 cho quản trị viên đầu tiên).

Chìa khóa 3: Endpoint (Điểm cuối) và Tài liệu tham khảo​

Endpoint chính là "địa chỉ" của chức năng bạn muốn gọi. Mỗi loại tài nguyên (bài viết, chủ đề, người dùng...) đều có một endpoint riêng.

Để biết danh sách các endpoint có sẵn, bạn có thể tham khảo trang tài liệu chính thức do XenForo cung cấp tại đây:
Trang này liệt kê hầu hết các endpoint quan trọng mà bạn sẽ cần đến. Hãy đánh dấu lại trang này để tiện tra cứu.

Lần gọi API đầu tiên: Lấy danh sách chủ đề với Postman​


Lý thuyết là vậy, giờ hãy thực hành. Chúng ta sẽ dùng Postman, một công cụ miễn phí và cực kỳ phổ biến để gửi các yêu cầu API.

Mục tiêu: Gửi một yêu cầu GET để lấy danh sách các chủ đề mới nhất.
  1. Mở Postman và tạo một request mới.
  2. Chọn phương thức là GET.
  3. Nhập URL của endpoint: https://your-domain.com/api/threads/
  4. Chuyển sang tab Headers.
  5. Thêm 2 dòng sau vào bảng Headers:
    • KEY:XF-Api-Key | VALUE:Dán chuỗi API Key bạn đã tạo ở trên vào đây
    • KEY:XF-Api-User | VALUE:1
  6. Nhấn nút Send.
Nếu thành công, bạn sẽ thấy ở khung dưới một loạt dữ liệu dạng JSON trả về, chứa danh sách các chủ đề cùng thông tin chi tiết của chúng.

Vượt ra ngoài việc đọc: Tạo một bài trả lời mới (Yêu cầu POST)​


Lấy dữ liệu rất hay, nhưng ghi dữ liệu còn mạnh mẽ hơn. Giờ chúng ta sẽ gửi một bài trả lời vào một chủ đề có sẵn.

Mục tiêu: Gửi một yêu cầu POST để tạo một bài viết mới.
  1. Trong Postman, tạo một request mới.
  2. Chọn phương thức là POST.
  3. Nhập URL của endpoint: https://your-domain.com/api/posts/
  4. Giữ nguyên các Headers (XF-Api-KeyXF-Api-User) như ở ví dụ trước.
  5. Chuyển sang tab Body.
  6. Chọn loại là form-data.
  7. Thêm các cặp KEY - VALUEsau:
    • KEY:thread_id | VALUE:Nhập ID của chủ đề bạn muốn trả lời (ví dụ: 25)
    • KEY:message | VALUE:Đây là bài trả lời gửi từ API!
  8. Nhấn nút Send.
Nếu thành công, bạn sẽ nhận lại dữ liệu JSON của chính bài viết vừa được tạo, và khi kiểm tra chủ đề trên diễn đàn, bạn sẽ thấy bài trả lời mới của mình!

Các nguyên tắc vàng về bảo mật​

  • Không bao giờ để lộ Super user key: Khóa này chỉ dành cho giao tiếp giữa máy chủ-máy chủ (server-to-server). Tuyệt đối không nhúng nó vào code JavaScript chạy trên trình duyệt của người dùng.
  • Luôn dùng HTTPS: Để đảm bảo API key và dữ liệu được mã hóa khi truyền đi.

Kết luận

Chỉ với ba "chìa khóa" (API Key, User Context, Endpoint) và một công cụ như Postman, bạn đã mở ra cánh cửa để tương tác với diễn đàn XenForo của mình một cách hoàn toàn mới. Đây chỉ là bước khởi đầu. Hãy dành thời gian khám phá danh sách các endpoints để xem tất cả những gì bạn có thể làm. Sức mạnh tự động hóa đang nằm trong tay bạn.

Chúc các bạn thành công.


VNXF.VN​
 
Back
Top