Tự động đăng bài Facebook bằng n8n: hướng dẫn triển khai
Workflow tự động đăng bài Facebook bằng n8n dùng Facebook Graph API để đăng lên Trang (Page) qua Page access token có quyền pages_manage_posts — không đăng được lên trang cá nhân hay nhóm. Bài này giải thích kiến trúc từ lịch nội dung trong Google Sheets đến khi bài lên sóng, cách xử lý ảnh/video, token hết hạn và rủi ro cần tránh.
Facebook cho phép tự động đăng bài đến đâu
Facebook chỉ chính thức cho tự động đăng lên Trang (Page), không cho đăng lên trang cá nhân. Việc này đi qua Facebook Graph API, cần một Page access token có quyền pages_manage_posts — gắn với Trang chứ không gắn với tài khoản cá nhân của anh/chị.
Đăng tự động lên trang cá nhân từng làm được qua quyền publish_actions, nhưng Facebook đã bỏ quyền này khỏi Graph API từ năm 2018 sau sự cố Cambridge Analytica. Hiện không có cách chính thức nào để một workflow tự đăng thay tài khoản cá nhân.
Đăng vào group cũng vậy. API để đăng bài vào group (cùng quyền publish_to_groups) đã bị gỡ khỏi mọi phiên bản Graph API từ tháng 4/2024. Nếu thấy công cụ nào quảng cáo 'tự động đăng vào group Facebook', nên hỏi kỹ họ làm bằng cách nào — cách không chính thức có thể khiến tài khoản bị khoá.
Với Trang do chính anh/chị quản trị, có thể để ứng dụng Meta ở chế độ phát triển (development) và tự thêm mình làm quản trị/tester — không cần Facebook duyệt ứng dụng (App Review) đầy đủ. Nếu làm workflow này để đăng hộ Trang của khách hàng khác (mô hình agency), Facebook sẽ yêu cầu App Review và xác minh doanh nghiệp (Business Verification) mới cấp quyền pages_manage_posts ở mức đầy đủ — nên kiểm tra yêu cầu hiện hành tại thời điểm xin quyền vì Meta hay điều chỉnh.
Kiến trúc một workflow đăng bài tự động
Một workflow đăng bài tự động vận hành theo một đường thẳng: soạn nội dung một lần, máy tự lo phần còn lại.
| Bước | Công cụ trong n8n | Việc máy làm |
|---|---|---|
| 1. Lịch nội dung | Google Sheets | Đội content điền bài viết, ảnh/video, giờ đăng, nền tảng đích vào một hàng, đặt trạng thái 'chờ đăng' |
| 2. Kích hoạt theo giờ | Schedule Trigger | Quét Sheets mỗi 15–30 phút, tìm hàng đã đến giờ và còn ở trạng thái 'chờ đăng' |
| 3. Định dạng theo nền tảng | Switch + Set | Tách nội dung theo Facebook/TikTok/Threads, canh lại độ dài chữ và khổ ảnh/video từng nơi |
| 4. Đăng bài | Facebook Graph API / HTTP Request | Gửi ảnh, video, nội dung lên đúng endpoint của từng nền tảng |
| 5. Ghi lại kết quả | Google Sheets (cập nhật hàng) | Đánh dấu 'đã đăng', giờ đăng thật, link bài — hoặc mã lỗi nếu thất bại |
| 6. Báo lỗi | Zalo/Email | Gửi cảnh báo ngay khi một bài đăng thất bại để người phụ trách xử lý tay kịp giờ |
Định dạng nội dung theo từng nền tảng
Facebook Page nhận caption dài, link kèm ảnh xem trước, và đăng nhiều ảnh trong một bài — ít giới hạn nhất trong ba nền tảng.
TikTok và Threads cũng có API đăng bài chính thức, nhưng đi kèm điều kiện xét duyệt ứng dụng và giới hạn định dạng khắt khe, hay thay đổi hơn Facebook. Trước khi cam kết tự động toàn bộ cho hai nền tảng này, nên kiểm tra lại tình trạng xét duyệt hiện hành — bộ máy đăng bài đa nền tảng của AdSys xử lý cả ba nền tảng này, phần TikTok/Threads theo đúng điều kiện API tại thời điểm triển khai.
- Facebook: caption dài, ảnh/video kèm chữ, hoặc link kèm ảnh xem trước
- TikTok: bắt buộc video dọc (khổ 9:16), chữ mô tả ngắn
- Threads: ưu tiên chữ ngắn, ảnh đơn hoặc video ngắn, không có ảnh xem trước dạng link như Facebook
Xử lý ảnh và video trong workflow
Graph API không nhận đường dẫn file nội bộ — cần một URL công khai tải được ảnh/video, hoặc gửi thẳng dữ liệu nhị phân trong request. Cách phổ biến: để link Google Drive (đã bật chia sẻ công khai) trong Sheets, n8n tải file đó về rồi đẩy lên đúng endpoint ảnh/video của Facebook.
Video dung lượng lớn cần endpoint upload riêng (upload theo từng phần) thay vì gửi một lần — kiểm tra giới hạn dung lượng và định dạng hiện hành của Facebook trước khi đưa video dài vào lịch đăng tự động.
- Kiểm tra link Drive đã chia sẻ 'ai có link đều xem được' trước khi đưa vào Sheets
- Canh ảnh/video về đúng khổ từng nền tảng trước khi đăng, tránh Facebook tự nén làm giảm chất lượng
- Video dài dùng endpoint upload riêng, không gửi chung với bài đăng chữ
- Luôn đăng thử lên Trang test trước khi bật lịch đăng lên Trang thật
Token hết hạn và app review — điểm dễ gãy nhất
Page access token lấy trực tiếp từ Graph API Explorer thường chỉ sống vài giờ. Để có token dùng lâu dài: đổi token người dùng ngắn hạn sang token người dùng dài hạn (khoảng 60 ngày), rồi gọi /me/accounts bằng token dài hạn đó để lấy Page access token — token lấy theo đường này không có hạn sử dụng cố định.
'Không hạn sử dụng' không có nghĩa là vĩnh viễn. Token vẫn chết khi người tạo đổi mật khẩu, thu hồi quyền, bị gỡ vai trò quản trị khỏi Trang, hoặc ứng dụng bị Facebook tạm khoá. Với workflow chạy sản xuất lâu dài, nên dùng system user trong Business Manager thay vì token gắn với một tài khoản cá nhân — ít phụ thuộc vào biến động của một người hơn.
- Đặt lịch kiểm tra token mỗi vài tháng, đừng đợi workflow báo lỗi mới nhớ ra
- Không dùng token lấy trực tiếp trong Graph API Explorer cho môi trường chạy thật — token đó thường ngắn hạn
- Agency quản nhiều Trang khách hàng: cân nhắc system user để token không phụ thuộc một tài khoản cá nhân
Rủi ro spam và tuân thủ chính sách Facebook
Đăng cùng một nội dung hàng loạt lên nhiều Trang, hoặc đăng dày đặc trong thời gian ngắn, dễ bị hệ thống chống spam của Facebook để ý — kể cả khi đăng qua API chính thức. Vấn đề không nằm ở việc dùng workflow, mà ở cách dùng.
- Giữ khoảng cách hợp lý giữa các lần đăng, đừng dồn hàng chục bài trong vài phút
- Không dùng nội dung giống hệt nhau cho nhiều Trang không liên quan nhau
- Tránh nội dung câu tương tác kiểu ép buộc (mời bình luận/like để 'lên top') — vi phạm chính sách nội dung của Facebook
- Vẫn cần người duyệt nội dung trước khi vào hàng chờ đăng — workflow tự động phần đăng, không tự động phần kiểm duyệt
- Theo dõi định kỳ trạng thái Trang trong Meta Business Suite để phát hiện sớm nếu bị hạn chế
Checklist trước khi triển khai
- Trang Facebook đã có, anh/chị là quản trị viên với quyền đầy đủ
- Đã tạo ứng dụng Meta, xin đúng quyền pages_manage_posts (và pages_read_engagement nếu cần)
- Đã đổi được token dài hạn qua /me/accounts, không dùng token tạm từ Graph API Explorer
- Google Sheets có đủ cột: nội dung, ảnh/video, giờ đăng, nền tảng, trạng thái, link kết quả
- Có nhánh báo lỗi về Zalo/email khi một bài đăng thất bại
- Đã thử đăng trên Trang test trước khi bật lịch đăng lên Trang thật
- Có người duyệt nội dung trước khi vào hàng chờ, không để máy tự sinh và tự đăng không kiểm soát
Tự làm hay dùng bản dựng sẵn
Tự dựng workflow này từ đầu mất khoảng vài ngày cho người đã quen n8n: xin quyền Facebook, dựng luồng Sheets, xử lý ảnh/video, viết nhánh báo lỗi. Với người mới, thời gian dò lỗi quyền và định dạng ảnh/video thường lâu hơn phần dựng workflow.
Bộ máy đăng bài đa nền tảng của AdSys (990.000đ) dựng sẵn đúng luồng này cho Facebook, TikTok, Threads, kèm file Google Sheets mẫu và tài liệu hướng dẫn cài. Nếu cần cả phần báo cáo hiệu quả quảng cáo đi kèm lịch đăng, gói AdSys MarketingFlow gộp cả hai vào một hệ thống.
