MA
Michael Aurora Facebook App setup guide
Meta Developer Setup

Hướng dẫn tạo Facebook App và kết nối tài khoản

Tài liệu thực hành cho Michael Aurora để cấu hình app dùng cho Ads, Page Posts và Messages: từ tạo app, quyền truy cập, Facebook Login, Business Verification, App Review, token, System User đến webhook nếu cần nhận event thời gian thực.

Mục tiêu: chạy production hợp lệ Phạm vi: Ads, Posts, Messages File độc lập, mở trực tiếp trên trình duyệt

Tổng quan kiến trúc

Một Facebook App production thường gồm app cấu hình trong Meta for Developers, Business Manager sở hữu app, tài khoản quảng cáo hoặc Page được cấp quyền, OAuth để kết nối người dùng và token để gọi Graph API. Webhook chỉ dùng khi app cần nhận sự kiện tin nhắn hoặc event thời gian thực.

Nền tảng

Ads Management

Dùng để đọc hoặc quản lý Ad Account, campaign, ad set, ad, insight. Quyền thường gặp: ads_readads_management.

Page Posts

Dùng để đọc Page, tạo bài viết, quản lý nội dung và tương tác. Quyền thường gặp: pages_show_list, pages_read_engagement, pages_manage_posts.

Messages

Dùng để nhận và trả lời tin nhắn Page qua Messenger Platform. Quyền thường gặp: pages_messaging. Nếu backend cần nhận event tin nhắn, postback hoặc delivery/read theo thời gian thực thì thêm pages_manage_metadata cho webhook/subscription.

Cảnh báo policy Chỉ xin quyền đúng với tính năng đang hoạt động. Meta có thể yêu cầu Business Verification, screencast, tài khoản test, mô tả use case và bằng chứng tuân thủ trước khi cấp quyền nâng cao.

Ba nơi riêng biệt dễ bị nhầm

Meta tách phần phát triển app, phần sở hữu/chia sẻ asset trong business và phần danh tính máy chủ. Khi debug quyền, luôn kiểm tra đúng nơi trước.

Roles map

1. Developer App / App Dashboard

Nơi tạo app, chọn use case, cấu hình Basic Settings, products, permissions, App Review, Webhooks nếu cần và App Roles như Admin, Developer, Tester cho người quản lý hoặc kiểm thử app.

2. Business Settings > Accounts > Apps

Nơi business sở hữu hoặc yêu cầu truy cập app, assign people/partners, connect assets và kiểm tra app có thuộc đúng Business Portfolio của Michael Aurora hay không.

3. Business Settings > Users > System users

Nơi tạo System User cho tác vụ server-side, gán Page, Ad Account, Instagram hoặc app assets rồi generate token. Đây không phải người thật và không thay thế App Roles.

Quy tắc kiểm tra nhanh App Dashboard trả lời câu hỏi "app có tính năng và permission nào"; Accounts > Apps trả lời "business nào sở hữu app và ai/asset nào được kết nối"; System users trả lời "backend dùng danh tính nào và token nào để gọi API".

Chuẩn bị trước khi tạo app

Chuẩn bị kỹ giúp App Review nhanh hơn và tránh bị từ chối do thiếu bằng chứng hoặc cấu hình pháp lý.

Prerequisites

Tài khoản & quyền sở hữu

  • Facebook cá nhân có bảo mật 2 yếu tố.
  • Meta Business Manager của Michael Aurora.
  • Quyền admin với Page và Ad Account cần kết nối.
  • Phương thức thanh toán hợp lệ nếu chạy quảng cáo.

Website & pháp lý

  • Domain production có HTTPS.
  • Privacy Policy công khai.
  • Terms of Service nếu có thu thập dữ liệu người dùng.
  • URL Data Deletion hoặc hướng dẫn xóa dữ liệu.

Kỹ thuật

  • Backend có thể giữ App Secret an toàn.
  • OAuth redirect URL cố định.
  • Nếu dùng webhook, cấu hình endpoint HTTPS trả HTTP 200 nhanh.
  • Log/audit để truy vết token, user, Page, Ad Account.

Tài liệu review

  • Screencast thể hiện tính năng cần quyền.
  • Tài khoản demo với dữ liệu mẫu.
  • Mô tả rõ dữ liệu lấy về, nơi lưu, thời gian giữ.
  • Lý do từng permission là bắt buộc.

Tạo Meta App

Thao tác trong Meta for Developers. Tên menu có thể thay đổi nhẹ theo giao diện Meta, nhưng luồng tổng thể vẫn tương tự.

Step by step

Tạo app mới và chọn use case đúng ngay từ đầu

Vào My Apps, chọn Create App. Chọn use case sát nhất với tính năng thật như Ads, Page management, Login hoặc Messaging trước khi cấu hình sâu. Theo luồng App Dashboard hiện tại, use case giúp Meta tự thêm nhóm products, permissions và features cần thiết; một số use case không tương thích với app hiện tại có thể bị mờ hoặc không chọn được.

Gán Business

Trong App Dashboard, liên kết app với Business Manager sở hữu tài sản thật. App nên thuộc business production, không thuộc tài khoản cá nhân của developer.

Kiểm tra Use cases trong App Dashboard

Sau khi app được tạo, mở App Dashboard > Use cases để xác nhận đúng use case đã chọn, thêm tùy chọn liên quan nếu Meta cho phép và bỏ các phần không phục vụ sản phẩm production. Nếu chọn sai, nên cân nhắc tạo app mới sớm thay vì cố xin permission trái với use case.

Cấu hình Basic Settings

Điền App Domains, Contact Email, Privacy Policy URL, Terms URL, User Data Deletion, category và platform Website. Không public app nếu thông tin pháp lý chưa đầy đủ.

Giữ bí mật App Secret

Không nhúng App Secret vào HTML, mobile app hoặc frontend. Chỉ dùng ở server để đổi token, xác minh webhook nếu có và gọi API nội bộ.

Thêm sản phẩm và quyền

Nếu app được tạo theo use case, nhiều product/permission liên quan đã được thêm theo luồng đó. Nếu app dùng kiểu cấu hình product thủ công, thêm product trong App Dashboard rồi xin permission tương ứng qua App Review khi cần dùng với người dùng hoặc tài sản ngoài vai trò developer/tester.

Permissions
Use case Product / API Permissions thường dùng Lưu ý review
Ads Management Marketing API ads_read, ads_management, có thể cần Business asset access. Chứng minh app chỉ quản lý tài khoản quảng cáo được chủ sở hữu ủy quyền. Mô tả hành động tạo/sửa/xóa campaign thật rõ.
Page Posts Graph API for Pages pages_show_list, pages_read_engagement, pages_manage_posts, đôi khi pages_read_user_content. Cần screencast quy trình chọn Page, tạo bài, lên lịch hoặc đọc nội dung. Không xin quyền đọc dữ liệu nếu chỉ cần đăng bài.
Messages Messenger Platform pages_messaging, pages_manage_metadata, có thể cần pages_show_list. Meta kiểm tra cách nhận và trả lời tin nhắn, chính sách 24 giờ và nội dung tự động. Nếu app cần nhận event thời gian thực, chuẩn bị webhook HTTPS hoạt động.
Login Facebook Login public_profile, email nếu cần email, các scope nâng cao ở trên. Redirect URL phải khớp tuyệt đối. Trải nghiệm login phải giải thích vì sao cần từng quyền.
Không dùng quyền rộng để "dự phòng" Quyền càng nhạy cảm thì App Review càng nghiêm. Nếu Michael Aurora chưa có tính năng Messages trong production, chưa nên xin pages_messaging.

Business Settings > Accounts > Apps

Đây là màn hình trong Business Settings để xác nhận app thuộc đúng business, cấp người/partner làm việc với app và kết nối app với asset business. Nó khác với App Roles trong Developer Dashboard.

Business access

Apps > chọn app production

Vào Business Settings > Accounts > Apps, chọn app của Michael Aurora. Nếu app chưa xuất hiện, thêm app vào Business Portfolio hoặc request access theo luồng của Meta. App production nên được sở hữu bởi business chính thức, không nằm rời trong tài khoản cá nhân.

Assign people / Assign partners

Dùng nút Assign people để cấp người trong business quyền làm việc với app; dùng Assign partners nếu agency hoặc business khác cần truy cập. Chỉ cấp mức cần thiết, ví dụ develop/test/view insights thay vì toàn quyền nếu không quản trị app.

Connect assets

Dùng Connect assets để liên kết các asset liên quan như Page, Ad Account, Instagram account hoặc asset khác mà app cần dùng. Nếu asset không hiện, kiểm tra asset đã được thêm vào Business Portfolio và tài khoản hiện tại có full control hoặc quyền phù hợp.

People và Connected assets

Trong app đã chọn, mở tab People để xem ai đang có quyền với app; mở Connected assets để kiểm tra Page/Ad Account/Instagram nào đã kết nối. Đây là nơi đối chiếu nhanh khi API báo thiếu asset access dù permission trong App Dashboard đã đúng.

Không nhầm với App Roles App Roles cho phép người đó quản lý/test app trong Developer Dashboard và dùng app khi app còn Development Mode. Business Settings > Accounts > Apps quyết định app nằm trong business nào và asset/person/partner nào được business cấp quyền.

Facebook Login để kết nối tài khoản

Login là luồng để người dùng cấp quyền cho app truy cập Page, Ad Account hoặc inbox Page mà họ quản lý.

OAuth

Thêm Facebook Login

Trong App Dashboard, thêm Facebook Login. Cấu hình Valid OAuth Redirect URIs, ví dụ https://app.michaelaurora.com/auth/facebook/callback.

Yêu cầu scope tối thiểu

Luồng đầu tiên nên xin public_profile và các quyền thật sự cần cho màn hình hiện tại. Với Page, thường cần lấy danh sách Page trước rồi đổi sang Page Access Token.

Đổi code lấy token ở backend

Frontend nhận authorization code, backend đổi code lấy short-lived User Token, sau đó đổi sang long-lived token nếu cần. Không xử lý App Secret trên trình duyệt.

Lưu liên kết nội bộ

Lưu mapping giữa user Michael Aurora, Facebook user id, Page id, Ad Account id, permission đã cấp, token expiry và thời điểm refresh/reconnect.

Business Verification và App Review

Đây là phần quyết định app có được dùng quyền nâng cao ngoài chế độ development hay không.

Compliance

Business Verification

Hoàn tất trong Business Manager bằng thông tin pháp nhân, website/domain, giấy tờ doanh nghiệp và phương thức liên hệ. Business phải khớp với thương hiệu Michael Aurora.

App Review

Gửi từng permission với giải thích use case, video thao tác, credentials demo, link policy và hướng dẫn reviewer tái hiện quy trình.

Hoàn thiện Data Use Checkup

Khai báo loại dữ liệu thu thập, mục đích dùng, nơi lưu, ai có quyền truy cập và cách xóa khi người dùng yêu cầu.

Quay video review ngắn

Video nên bắt đầu từ login, chọn Page/Ad Account, thực hiện tính năng cần quyền, sau đó chỉ ra dữ liệu Facebook đang hiển thị trong app.

Chuẩn bị tài khoản demo

Reviewer phải đăng nhập được mà không cần hỏi thêm. Dùng dữ liệu giả lập nhưng thể hiện đầy đủ Ads, Posts và Messages.

Các lỗi thường bị từ chối Xin permission nhưng không có tính năng tương ứng, video không thể hiện quyền đang dùng, redirect lỗi, app chưa có privacy policy, hoặc giải thích dữ liệu quá chung chung.

Test Users và chế độ Development

Trước khi review, app chỉ nên test với Admin, Developer, Tester hoặc Test User được tạo trong dashboard.

Testing

Khi dùng Test User

Tạo Test User trong App Roles để kiểm thử Facebook Login, consent screen và token mà không ảnh hưởng tài khoản thật. Thêm Test User vào Page hoặc asset test nếu cần.

Khi dùng tài khoản thật

Tài khoản thật phải được thêm vào app role phù hợp trong thời gian Development. Không mời khách hàng production test quyền chưa được review.

Gợi ý kiểm thử Tạo một Page test, một Ad Account test hoặc sandbox và một thread Messenger test để quay App Review sạch, không lộ dữ liệu khách hàng.

System User để token lâu dài

System User là danh tính trong Meta Business Manager, không phải Meta App Admin và không phải người thật. Nó thường được dùng để tạo access token dài hạn cho server/backend automation khi làm việc với asset của business, nhưng không nên gọi là token vĩnh viễn.

Server

System users > tạo hoặc chọn system user

Vào Business Settings > Users > System users. Tạo System User với tên rõ như ma-production-api hoặc chọn system user hiện có. Chỉ dùng Admin System User nếu backend thật sự cần quản trị rộng; đa số tác vụ production nên dùng Employee/System User với quyền asset cụ thể.

Assigned assets

Trong system user đã chọn, mở Assigned assets. Gán đúng Page, Ad Account, Instagram account nếu có dùng và app liên quan. Với Ads, gán ad account và quyền phù hợp; với Page posts/Messages, gán Page và quyền cần thiết. Token sau này chỉ làm được những việc scope và asset assignment cho phép.

Generate token

Chọn Generate token, chọn đúng app production rồi tick scope tối thiểu như ads_read, ads_management, pages_show_list, pages_read_engagement hoặc scope Page/Messaging thật sự cần. Lưu token ở secret manager phía server, không đưa vào frontend, và ghi lại app id, system user id, scope, asset id, ngày tạo.

Revoke tokens và xoay vòng

Dùng Revoke tokens khi nhân sự rời dự án, nghi ngờ lộ secret, đổi backend hoặc dừng tích hợp. Sau khi revoke, generate token mới với scope tối thiểu và cập nhật secret ở môi trường production/staging có kiểm soát.

Lưu ý production System User token không tự vượt qua giới hạn quyền, App Review hoặc Business Verification. Một số token có thời hạn dài hoặc có thể được refresh theo điều kiện của Meta, nhưng vẫn có thể hết hạn, bị revoke hoặc mất hiệu lực khi app/business/asset/permission thay đổi.

Access Tokens cần quản lý

Token là điểm rủi ro bảo mật lớn nhất. Cần biết loại token, nơi dùng và cách thu hồi.

Security
Token Dùng cho Nơi lưu Kiểm soát
User Access Token Đọc quyền user đã cấp, lấy Page/Ad Account user quản lý. Backend database, mã hóa nếu có thể. Theo dõi expiry, scope, reconnect khi thiếu quyền.
Page Access Token Đăng bài Page, đọc engagement, gửi/nhận message theo quyền Page. Backend secrets hoặc encrypted storage. Gắn với Page id, kiểm tra Page vẫn thuộc quyền quản lý.
System User Token Tác vụ server/back-end cho asset business đã cấp; long-lived token để automation. Secret manager phía server, không lưu trong frontend. Least privilege, rotation, audit log, quản trị vòng đời token.
App Access Token Một số thao tác app-level, debug token, xác minh app. Backend only. Không thay thế User/Page token cho dữ liệu người dùng.
// Ví dụ luồng backend rút gọn
1. Redirect user tới Facebook OAuth với scope cần thiết
2. Backend nhận authorization code tại callback URL
3. Backend đổi code lấy User Access Token
4. Backend gọi /me/accounts để lấy Page và Page Access Token
5. Backend lưu token, expiry, granted scopes, Page id, Ad Account id
6. Khi gọi Graph API, kiểm tra scope trước và xử lý lỗi cần reconnect

Webhook Messages

Webhook là phần tùy chọn, chỉ dùng khi backend cần nhận sự kiện Messenger theo thời gian thực, như tin nhắn mới, postback hoặc delivery/read event. Nếu app chỉ đăng nhập, quản lý Ads hoặc đăng bài, có thể bỏ qua phần này.

Optional

Nếu cần realtime

Chỉ khi ứng dụng cần nhận event ngay lập tức, hãy chuẩn bị endpoint như https://api.michaelaurora.com/webhooks/meta/messages. Endpoint trả xác minh GET với hub.challenge và nhận POST nhanh.

Cấu hình Webhooks trong app

Trong App Dashboard, thêm Webhooks cho object Page nếu cần. Điền Callback URL và Verify Token tự đặt. Đăng ký field cần dùng, thường là messagesmessaging_postbacks.

Subscribe Page

Khi triển khai webhook, sau khi Page cấp quyền pages_manage_metadatapages_messaging, gọi API subscribe app vào Page hoặc dùng dashboard để đăng ký.

Xác minh chữ ký

Ở backend, xác minh header chữ ký request bằng App Secret. Nếu xử lý lâu, đưa event vào queue rồi trả 200 để tránh Meta retry quá nhiều.

// Pseudocode xác minh webhook
GET /webhooks/meta/messages:
  if hub.verify_token == META_VERIFY_TOKEN:
    return hub.challenge
  return 403

POST /webhooks/meta/messages:
  verify X-Hub-Signature-256 with APP_SECRET
  enqueue event
  return 200
Lưu ý chính sách Messenger Không gửi tin nhắn ngoài phạm vi chính sách của Messenger Platform. Đặc biệt cần tôn trọng khung phản hồi, opt-in, nội dung quảng cáo và quyền riêng tư của người dùng.

Checklist xác minh trước production

Tick từng mục sau khi đã kiểm tra trên môi trường thật hoặc staging tương đương production.

Go live