📘
Page Manager
Nền tảng vận hành đa Fanpage

Đăng 24h qua Chờ đăng Đang đăng
🔴 Bộ hẹn giờ đang chạy và còn bài chờ, nhưng 24 giờ qua không đăng được bài nào. Tiến trình sống không có nghĩa là hệ thống chạy — xem 📘 Trang FB để biết bài đang tắc ở đâu.
⚠ Bộ hẹn giờ không chạy — không bài nào được đăng. Chạy python main.py scheduler.

Phân bố hàng đợi

Sức khoẻ page

Sức khoẻ theo nhóm

Sửa token xong thì điều gì xảy ra?

Bế tắc không phải một khối mà là ba khối tách rời, mỗi khối một cách gỡ. Gộp lại thì tưởng “sửa token là xong”.
bài đăng được ngay
khi gắn lại token cho page token chết. Code làm được — cần bạn lấy System User token mới.
bài kẹt vì checkpoint
page cần bạn vào facebook.com xác minh tài khoản. Token mới KHÔNG cứu được.
page khoẻ nhưng RẢNH
token sống nhưng không có bài nào trong hàng đợi → không đăng gì. Sửa token không cứu được — lên lịch từ 📚 Kho nội dung hoặc 🎬 Nguồn video.
Xem page rảnh
PageĐăng gần nhất

Việc chạy theo lịch

“Bật” chỉ nói ý định. Cột chạy gần nhất mới nói sự thật — một việc bật mà mốc không tiến là việc đó không chạy, hoặc chạy mà không bao giờ xong.
ViệcTrạng thái Chạy gần nhấtCách đây Chu kỳ
🛡 Đang quản lý trang ·
Không có page nào khớp bộ lọc.

LúcTrạng thái NguồnGhi chú
Chưa có lần kiểm tra nào được lưu.

Trang có nhiều token thì một nguồn chết vẫn đăng được bằng nguồn còn lại. Dòng đầu là token hệ thống đang thật sự dùng.

⚠ Trang này chỉ có 1 token. Thêm token nguồn khác ở 🔑 Token & Page rồi bấm “Gắn lại page” để có dự phòng.

⛔ Bộ hẹn giờ đang TẮT. Xếp bài vào hàng đợi bây giờ thì bài sẽ nằm im — không có tiến trình nào đăng chúng. Bật ở 🏠 Trang chủ trước.
Được nối vào CUỐI nội dung lúc gửi đi — khung xem trước bên phải hiện đúng thứ sẽ đăng. Để trống thì không nối gì.
Tự đăng ngay sau khi bài lên. Nếu bình luận lỗi thì bài vẫn giữ nguyên, chỉ ghi cảnh báo — không đăng lại bài.
Đang tải lên…

Ảnh jpg/png/webp · Video mp4/mov · tối đa 200 MB. File tải lên được ưu tiên hơn URL.

🎬 Dựng Reel từ ảnh

Ghép nhiều ảnh thành video dọc 9:16 (kèm nhạc nếu muốn), rồi dùng luôn làm file đăng. Cần FFmpeg trên máy.

⚠ Máy chưa cài FFmpeg — không dựng được Reel.
Đang tải lên…
Nhạc phải được phép dùng — nhạc lậu bị Facebook đánh gậy.
Video này đã được chọn làm file đăng.
Chưa có nhóm nào.
Số trong ngoặc là page đăng được / tổng page của nhóm. Nhóm ghi 0/N nghĩa là mọi page trong đó đang token chết — xếp hàng vẫn được, nhưng bài sẽ nằm lỗi tới khi token được sửa.
Đã chọn page (đã khử trùng) — page đăng được ngay, page chưa đăng được.
⛔ Không page nào trong lựa chọn này đăng được. Xếp hàng đợi bây giờ chỉ tạo ra một đống bài lỗi. Sửa token trước ở 🔑 Token & Page, hoặc chọn nhóm khác.
Xem trước
👍 Thích💬 Bình luận↗ Chia sẻ
Chưa chọn trang nào — hãy chọn nhóm hoặc trang ở cột bên trái.
Bài thủ công / từ kho nội dung
là những dòng trong bảng dưới
Chờ đăng
đang đăng:
Lỗi / bỏ cuộc
cho chạy lại được · đã bỏ cuộc
Từ 10/09/2026 hệ thống chỉ còn MỘT hàng đợi — bảng dưới là toàn bộ. Hàng đợi nạp bằng tay: 📚 Kho nội dung → “Lên lịch cho nhóm” hoặc 🎬 Nguồn video. Bảng trống nghĩa là không có gì chờ đăng.
Nội dungPage đích Người tạoLoại Trạng tháiLỗiGiờ đăng Lần thử
Không có bài nào khớp bộ lọc.
Không có bài nào khớp bộ lọc.
Đang hiện / bài khớp bộ lọc (bảng cắt ở dòng) — lọc hẹp lại để thấy phần còn lại.
Quy tắc: cũ hơn ngày, dưới like, chạy mỗi giờ. Lượt gần nhất: .
⚠ Quy tắc hiện tại nhắm tới bài trên page. Bài nhiều tương tác nhất trong số đó có lượt — quy tắc “MỌI bài cũ” không xét like, nên bài đó cũng bị xoá.
30 ngày qua: đã xoá bài khỏi Facebook, đăng thành công bài.
📗 Xuất CSV
#Nội dungTrang Người đăng TokenLoạiTrạng thái LịchĐăng lúcThao tác
Không có bài nào khớp bộ lọc.
Đang hiện / mục — còn mục chưa tải, tăng số dòng hoặc lọc hẹp lại. — đây là top thật của cả kho khớp bộ lọc (sắp xếp ở máy chủ).
Bấm để chọn, bấm lại để bỏ. Số trong ngoặc là page đăng được / tổng page của nhóm.
Không có trang nào khớp.
nội dung × page — page đăng được ngay, page chưa đăng được.
⛔ Không page nào trong các nhóm này đăng được — xếp hàng đợi bây giờ chỉ tạo ra bài lỗi.
Rải bài theo rào nhịp — nhìn trước ngày
Mỗi nội dung dùng tối đa trang
✔ Mỗi nội dung chỉ lên một trang duy nhất — chọn nội dung thì phục vụ được trang. ⚠ Cùng một nội dung sẽ lên trang khác nhau — đây là mẫu hành vi Facebook hay đánh dấu. Hệ thống sẽ hỏi lại trước khi xếp.
Mỗi trang chỉ nhận tối đa bài/ngày và hai bài cách nhau ít nhất giờ (dùng chung cấu hình với 🎬 Nguồn video). Phần vượt quá sẽ KHÔNG được xếp — hệ thống báo lại con số thật sau khi bấm.
Xem trước Nội dungLoạiChủ đề 👁 View Đã dùngThẻ
Kho trống. Bấm ➕ Thêm nội dung, hoặc nạp video bằng main.py dola-nhap.
Thao tác đã ghi
Lệnh gọi Facebook (24h)
Trong đó LỖI
Thời gian gọi trung bình
Mã lỗi Facebook hay gặp (24h)

Đây là mã lỗi có cấu trúc — tra ở src/fberrors.py, đừng đoán theo câu chữ.

Lúc Ai Làm gì Kết quả Chi tiết
Chưa có thao tác nào được ghi.

Nhật ký ghi mọi thao tác làm đổi dữ liệu. Không ghi mật khẩu, token hay app_secret — máy chủ chỉ giữ các trường trong danh sách cho phép. Nhật ký lệnh gọi Facebook giữ 14 ngày rồi tự dọn.

Facebook chỉ trả phần trăm, không trả trần thật — nên ở đây không có “còn bao nhiêu lượt”. Màn này không tự gọi Facebook khi mở: số liệu lấy từ header của chính các lệnh gọi đã thực hiện.

Tốn một lệnh gọi Graph cho mỗi App (/me?fields=id — lệnh rẻ nhất còn mang header hạn mức). Đừng bấm liên tục: đo hạn mức mà đốt hạn mức.

⚠ Điểm chết duy nhất — mọi token treo trên MỘT Facebook App. App bị siết là trang dừng cùng lúc, kể cả trang token còn sống. Đã xảy ra 09/09/2026.
Từng Facebook App
Chưa có Facebook App nào. Thêm ở 🔑 Token & Page.
Ngưỡng tự hãm
Đây là ngưỡng nội bộ của ta, không phải hạn mức chính thức của Facebook. Đăng bài không bao giờ bị hãm — tiết kiệm hạn mức bằng cách ngừng đăng chính là tự tạo ra sự cố im lặng.
Từ % → dừng việc phụ (insights, đọc bình luận, bản đồ Business).
Từ % → dừng cả kiểm token, chỉ chừa đường đăng bài.
Dừng việc phụ từ (%)
Chỉ chừa đăng bài từ (%)
Ai đang tiêu hạn mức (24 giờ qua)
Xếp theo tổng thời gian gọi — chiều đã làm sập app ngày 09/09. Cột Lỗi đáng nhìn nhất: lệnh gọi hỏng vẫn ăn hạn mức y như lệnh gọi thành công.
Nhóm endpoint Cách gọi Số lượt Tổng thời gian Trung bình Lỗi
Chưa có lệnh gọi Facebook nào trong 24 giờ qua.
Bucket đang bị siết
Facebook đếm hạn mức ở nhiều tầng. Một bucket đỏ không có nghĩa cả hệ đỏ — việc của bucket khác vẫn chạy.
Màn này đọc DB nội bộ, không gọi Facebook — số liệu tươi do lượt đồng bộ nạp.
Facebook App

Hạn mức x-app-usage tính theo TỪNG App. Dồn hết token vào một App là App đó bị siết thì mọi trang dừng cùng lúc.

App App ID Token Trang
Chưa có Business Manager nào.
Trang KHÔNG thuộc Business nào
trang chưa xác định Business
phần lớn vì token chết nên chưa hỏi được Facebook — chưa biết ≠ hỏng
trang treo trên token CÁ NHÂN
token hết hạn/checkpoint là mất cả cụm. Token System User mới KHÔNG cứu được — phải đưa trang vào Business trước, rồi cấp quyền, rồi mới gắn lại token.
Gom page theo chủ đề đang dùng thật. Chạy lại nhiều lần vô hại — chỉ thêm page còn thiếu.
Chưa có nhóm page nào.

Danh sách này thay thế TOÀN BỘ thành viên nhóm — bỏ tick là gỡ khỏi nhóm. Page không bị xoá.

Business
Không có page nào khớp.
Chuyển page đang tick sang Page được chuyển sẽ bị gỡ khỏi mọi nhóm khác, kể cả nhóm đang mở.
Token nguồn
Page token sống
Page token chết

➕ Thêm token nguồn

Token được kiểm tra với Facebook trước khi lưu — token hỏng không vào được kho.

⚠ Token cá nhân là thứ đã làm sập 99 page lần trước: nó hết hạn và kéo theo mọi page treo trên nó. Dùng System User token nếu có thể.

🚑 Gắn token cho page (cứu page hỏng & tạo dự phòng)

Token này quản page nào thì page đó được gắn thêm một token nữa — không xoá token cũ. Nên chọn token System User vì loại này không hết hạn. Page có 2 token trở lên thì một nguồn chết vẫn đăng bình thường.

Trang MỚI chưa có trong hệ thống?

Nút trên chỉ gắn token cho trang đã có trong hệ thống. Token của một Business Manager mới thì trang chưa hề có ở đây — dùng nút này để nạp trang về rồi gắn page token luôn, chỉ một lệnh gọi Facebook.

Dùng token chọn ở ô bên trên. System User chỉ thấy trang đã nằm trong Business Manager của nó.
NhãnLoại Hết hạnCòn lại PageFB còn cấp quyền Quyền

App Farm

Chưa có app nào.

Business Manager

Chưa có BM nào.

⚠ / proxy chưa kiểm lại quá ngày. Chấm xanh cũ trông y hệt chấm xanh vừa kiểm — bấm Kiểm tra sống/chết để biết thật.
NhãnGEOTrạng thái IPTốc độKiểm tra lúc

Tải ảnh quote lên → tool đọc chữ (OCR bằng GPT-4o mini) → dựng lại ảnh trên nền sạch. Mỗi lượt gọi AI tốn một khoản nhỏ tiền thật. Ảnh dựng ra nằm trong kho media nên đem đi Đăng bài được ngay.
Mất vài chục giây — cứ để trang mở.
Ảnh gốc
Đã làm sạch — khối chữ
Chữ đọc được

        
Đồng bộ chỉ ĐỌC số liệu — không đăng gì lên Facebook. Page token chết được bỏ qua, không nã lệnh gọi chắc chắn hỏng. Mỗi lượt tốn hạn mức chung của App ( page có token sống).
Follower
tổng trên trang
Tổng kết bài đăng
⚠️ Đã đăng đếm trong ngày qua; Hẹn lịch và Thất bại là tình trạng hiện tại của hàng đợi — bài đang chờ nằm ở tương lai nên cửa sổ quá khứ không bao được nó.
Tổng
Đã đăng
Hẹn lịch
Thất bại
Báo cáo theo Nhóm trang
Bấm một nhóm để xem từng trang bên trong. ⚠️ Một trang có thể thuộc nhiều nhóm nên cộng các nhóm KHÔNG ra tổng ở trên — thẻ tổng tính trên danh sách đã khử trùng.
Chưa có nhóm trang nào. Tạo ở 👪 Nhóm Page.
Chỉ đọc bình luận của 30 bài đăng gần nhất mỗi lượt. Bình luận do chính page viết (kể cả bình luận đầu tiên tự đăng) không hiện ở đây — đó không phải việc phải trả lời.
Người viếtNội dung PageLúcTrạng thái
Chưa có bình luận nào — bấm “Đọc bình luận mới”.
⚠ Chỉ còn MỘT tài khoản quản trị đang bật. Khoá hoặc hạ quyền nó là không còn ai vào được hệ thống — hệ thống sẽ từ chối. Muốn có dự phòng thì tạo thêm một quản trị nữa.
Tài khoảnVai trò Nhóm được giaoKho nội dung Trạng thái

Chưa có nhóm nào.

Tham số vận hành

Đổi mật khẩu

Nhà cung cấp Mỗi page cần bài dự trữ Khung giờ Page đang thiếu Đang dựng Prompt còn Page đích
Kết nối tới tool dựng video

Bên kia chỉ cần làm 3 việc: POST /video để nhận đơn · GET /video/{job_id} để ta hỏi · (tuỳ chọn) gọi ngược vào webhook khi xong. Trả về phải có video_url và caption — caption chính là nội dung đăng Facebook.

Đơn được đặt vào máy còn nhiều chỗ trống nhất, không chia đều — hai máy max_workers khác nhau thì chia đều là máy yếu tắc còn máy khoẻ nằm không. Tắt một máy nghĩa là đừng đặt thêm; video đang dựng dở ở đó vẫn được nhận về bình thường.

Chưa có máy nào. Bấm ➕ Thêm máy rồi dán địa chỉ LAN và token.

⚠️ Với Dola: để trống cả hai ô dưới. Hai lý do độc lập: adapter chưa gửi callback_url sang Dola, và Dola ký gói tin bằng X-Dola-Signature (HMAC) trong khi endpoint của ta đọc X-Video-Secret — có gửi cũng bị từ chối. Hệ thống đang dùng đường hỏi vòng, chạy đúng và đủ dùng.

Chưa đặt khoá thì webhook bị từ chối — endpoint này là chỗ duy nhất bên ngoài gọi vào được nên không bao giờ mở sẵn.

Đăng vào đâu, nhịp thế nào

Mỗi page một video riêng — không dùng chung một video cho nhiều page (98 clone watch hiện có cũng mỗi cái một page, và chưa nội dung nào từng lên hai page). Đích đến chốt ngay lúc đặt: video dựng xong là tự vào hàng đợi của đúng page đó. Chọn 20 page thì một lượt đặt tối đa 20 video — nhớ đặt trần cho vừa sức bên cung cấp.

Chưa có nhóm nào.
Bấm để chọn, bấm lại để bỏ.
Không có trang nào khớp.
Nhớ bấm Lưu & kiểm tra kết nối — chọn xong mà không lưu thì cấu hình vẫn trống.

Bấm Lưu & kiểm tra kết nối để hỏi Dola cho mấy luồng. ⚠️ Đặt cao hơn không làm nhanh hơn — phần dư chỉ xếp hàng chờ, và đơn chờ quá giờ sẽ bị bỏ (mất cả credit).

⚠️ 0 = mọi trang đăng đúng một giây. Đo thật: một bài mất ~27s, 6 luồng → ~13 bài/phút, nên rải hẹp hơn năng lực chỉ là lời hứa suông.

Chốt trang đích lúc đặt; video về xếp vào cữ trống gần nhất của đúng trang đó. Đặt video không kèm trang. Video ra thì chọn ngay một trang đang đủ điều kiện (rỗi lâu nhất trước) và đăng luôn — khung giờ không dùng tới. Trang vừa đăng rời danh sách cho tới khi đủ hai điều kiện bên dưới. Cả danh sách đang nghỉ thì video nằm trong kho, không bị ép vào đâu.

Đếm MỌI bài của trang (kể cả bài đăng tay), không riêng video.

Tính cả bài đã đăng, không chỉ bài đang chờ.

Luồng còn thừa sau khi mọi trang đủ bài sẽ dựng sẵn video (kèm caption) để dành. Kho hiện có . Bộ phân phối tự rút kho ra mỗi vòng — không cần bấm tay. 0 = tắt kho dự trữ, chỉ đặt khi trang cần.

Video về lúc nào cũng được xếp vào cữ trống gần nhất, mỗi cữ mỗi page đúng một bài — nên dựng lâu hay về trễ đều không làm bài đăng dồn. Đơn quá hạn ở trên bị bỏ và trả lại chỗ dự trữ; thiếu vế này thì page đó ngừng được đặt bài mới mà không có lỗi nào nổ.

Đang ở chế độ Video ra là đăng ngay — giờ đăng do danh sách xoay vòng ở trên quyết định, khung giờ này không được dùng tới. Giữ lại để đổi về Theo khung giờ là dùng được ngay, khỏi gõ lại.

Xếp hạng prompt theo lượt xem
Xếp theo view trung bình ở ngày thứ 5 — so ở cùng tuổi bài, không so tổng (prompt dùng nhiều lần thì tổng đương nhiên cao). Prompt chưa có bài đủ 5 ngày xếp sau, hiện số tạm. Cập nhật 1 lượt/ngày, bỏ qua page token chết.
⭐ prompt nổi bật · lấy % lượt đặt từ nhóm nổi bật (phần còn lại chia cho prompt thường).
⬇ Xuất prompt view cao nhất ra file .txt Xuất file — mở file rồi dán cho AI, bảo nó viết prompt cùng kiểu.
⚠️ Prompt chưa đủ 5 ngày đang hiện số TẠM — một bài may mắn cũng lên đầu bảng. Lấy cả chúng làm mẫu là dạy AI bắt chước thứ chưa ai biết là tốt hay không.
⚠️ Chưa prompt nào đủ 5 ngày — đang chọn nổi bật bằng số TẠM, dễ nhầm prompt may mắn.
Chưa có số liệu view — sẽ có sau lượt lấy view đầu tiên.
PromptVideo TB ngày 5TB hiện tại Reach TBXem TB Cao nhấtBài đã đăng Nổi bật
Kho prompt

Đây là nhiên liệu: hết prompt là không đặt được video nào. Nhiều prompt thì ngăn cách bằng một dòng chỉ có --- (không dùng dòng trống — prompt video dài và nhiều đoạn, tách theo dòng trống sẽ cắt vụn một prompt thành chục mảnh). Cùng nội dung dán lại không tạo bản sao.

⚠️ Phải có CAPTION: — nếu không, bài đăng sẽ là câu lệnh dựng video

PROMPT là câu lệnh dựng video; CAPTION là nội dung đăng lên Facebook. Dola không tự viết caption — nó giữ nguyên phần ta gửi rồi trả lại. Dùng đúng bộ nhãn của Dola (mode: nhan), nên dán được cả sang tool bên đó:

PROMPT: Đàn chó con vui đùa với mèo trong khu vườn mùa thu, ánh nắng xuyên tán lá…
CAPTION: Ngày mới nhẹ nhàng nhé cả nhà 🐶🐱
---
PROMPT: Cảnh thứ hai…
CAPTION: Nội dung đăng của cảnh hai…

Không có nhãn thì cả khối tính là PROMPT và caption để trống — prompt đó đặt được nhưng lúc nhận video về sẽ báo lỗi, vì không có gì để đăng. Nhãn CONTENT POST SOCIAL: (Dola in ra ở file .txt) cũng đọc được.

Chủ đề trong kho — bấm để XEM prompt của chủ đề đó (và gộp, đổi tên hoặc bỏ nhãn)
Prompt trong kho
Đang lọc theo chủ đề — prompt khớp cả từ khoá đang tìm.
Kho trống — chưa đặt được video nào.
Không prompt nào khớp.

⚠️ Tắt chứ không xoá — đơn đã đặt còn trỏ về prompt sinh ra nó, cần khi một video ra sai và phải tìm xem prompt nào đẻ ra. Prompt đã tắt không được lấy nữa.

Đơn đã đặt
#Tiêu đềChủ đềTrạng thái Đã xếpĐặt lúcLỗi
Chưa đặt đơn nào. Khai báo máy chủ, thêm prompt, chọn page đích rồi bấm Đặt ngay 1 lượt.