3. Đăng ký kênh mạng xã hội#
Mục tiêu#
Cho phép người dùng đăng ký và xác thực hồ sơ mạng xã hội trước khi tham gia thử thách.
Phạm vi#
- Hỗ trợ 5 nền tảng: TikTok, YouTube, Facebook, Instagram, Threads
- Mỗi nền tảng có quy trình xác thực riêng
3.1. TikTok (OAuth 2.0)#
- Người dùng chọn TikTok → chuyển hướng OAuth 2.0.
- Cấp quyền → Backend lấy: tên kênh, ID, avatar, số followers.
- Kiểm tra điều kiện (≥ X followers): đạt → APPROVED; không đạt → REJECTED.
3.2. YouTube (URL + API)#
- Người dùng nhập URL kênh YouTube.
- Yêu cầu thêm hashtag định danh (vd:
#TCB_xxxxx) vào mô tả kênh. - Backend lấy metadata từ YouTube API: tên, ID, avatar, followers.
- Kiểm tra điều kiện → trả kết quả ngay lập tức.
3.3. Facebook / Instagram / Threads (URL + Kiểm duyệt)#
- Người dùng nhập URL hồ sơ cá nhân.
- Bắt buộc thêm hashtag định danh vào mô tả hồ sơ.
- Backend lưu trạng thái PENDING.
- Kiểm duyệt thủ công/bán tự động: crawl hồ sơ, kiểm tra hashtag + followers.
- Kết quả cập nhật chậm nhất 01 ngày làm việc.
Ràng buộc dữ liệu#
| Trường | Kiểu | Bắt buộc | Ghi chú |
|---|---|---|---|
| Nền tảng | Enum | Có | TIKTOK / YOUTUBE / FACEBOOK / INSTAGRAM / THREADS |
| URL hồ sơ | URL | Có (trừ TikTok) | |
| Hashtag định danh | Text | Có (trừ TikTok) | Xác minh quyền sở hữu |
| Số followers | Number | Tự động | ≥ X (cấu hình) |
| Trạng thái | Enum | Có | PENDING / APPROVED / REJECTED |
Tiêu chí chấp nhận (Acceptance Criteria)#
| # | Tiêu chí | Điều kiện đạt |
|---|---|---|
| AC-3.1 | Đăng ký TikTok qua OAuth | Chọn TikTok → OAuth thành công → hệ thống lấy tên, ID, avatar, followers → trả kết quả ngay (APPROVED nếu ≥ X followers, REJECTED nếu không đạt) |
| AC-3.2 | Đăng ký YouTube qua URL | Nhập URL kênh hợp lệ + thêm hashtag định danh → hệ thống verify qua YouTube API → trả kết quả ngay |
| AC-3.3 | Đăng ký Facebook/Instagram/Threads | Nhập URL + thêm hashtag → trạng thái PENDING → kết quả trả về trong 1 ngày làm việc |
| AC-3.4 | Hashtag định danh | Hệ thống sinh hashtag duy nhất cho mỗi user (vd: #TCB_xxxxx), user phải thêm vào mô tả kênh/profile |
| AC-3.5 | Từ chối URL không hợp lệ | Nhập URL sai định dạng hoặc không truy cập được → hiển thị lỗi |
| AC-3.6 | Không đăng ký trùng | User đã có hồ sơ APPROVED cho cùng nền tảng → không cho đăng ký lại |
| AC-3.7 | Kiểm tra điều kiện followers | Số followers < ngưỡng cấu hình → REJECTED kèm lý do |