TRƯƠNG MINH KIÊN · HỆ THỐNG TRIỂN KHAI AI
← Về truongminhkien.vn
Bước 14 / 22 · Phần 3 — Máy chạy thay mình

Đăng Facebook tự động

Viết bài + lên lịch trong Lark Base như 1 bảng Excel bình thường — máy chủ tự đăng đúng giờ lên Fanpage, không cần ai mở máy tính lúc đó.

Gói cài đặt bước này

Tải gói về, giải nén, rồi dán câu lệnh bên dưới vào Claude. Claude đọc file CHO-CLAUDE-DOC.md trong gói rồi làm, kể cả các bẫy đã gặp.

Tải gói dang-facebook-tu-dong.zip

Đọc hướng dẫn ngay trên trang: trienkhaifb.truongminhkien.vn/dang-facebook-tu-dong/CHO-CLAUDE-DOC.md

Tải gói https://trienkhaifb.truongminhkien.vn/dang-facebook-tu-dong.zip (hoặc đọc thẳng https://trienkhaifb.truongminhkien.vn/dang-facebook-tu-dong/CHO-CLAUDE-DOC.md), giải nén, đọc CHO-CLAUDE-DOC.md và TRIEN-KHAI.md rồi dựng máy đăng bài trên Cloudflare cho tôi, ở chế độ chỉ liệt kê trước; sau đó viết cho tôi 30 ngày bài và lên lịch đăng

Yêu cầu trước khi bắt đầu

Đây là code thật đang chạy, không phải để AI viết lại từ đầu

Gói có sẵn máy chạy trên Cloudflare Workers (thư mục cloudflare-worker): đăng bài tới lịch mỗi 5 phút, bắt nút "Đăng ngay", mỗi sáng 6 giờ kéo Fanpage, bài viết, quảng cáo về Lark. Đúng bản Trương Minh Kiên đang chạy thật từ 14/10/2026. Không cần GitHub, không cần bật máy tính. Chi tiết trong TRIEN-KHAI.md.

https://trienkhaifb.truongminhkien.vn/dang-facebook-tu-dong.zip
1

Tạo App Lark và token Facebook dài hạn

App Lark có quyền bitable:app, drive:drive, base:record:retrieve, base:table:create, bật Bot, bấm Publish. Token Facebook dài hạn đủ 8 quyền: pages_show_list, pages_read_engagement, pages_manage_posts, pages_manage_engagement, pages_read_user_content, read_insights, ads_read, business_management. Mọi bước cần mật khẩu, OTP, token thật thì bạn tự làm.

Đừng bỏ sót pages_manage_engagement: thiếu quyền này thì bài vẫn lên nhưng comment tự động luôn lỗi âm thầm (xem bẫy 5).

2

Mời App Lark vào Base và tạo bảng mẫu

Mời App Lark làm cộng tác viên (Chỉnh sửa) vào đúng Base đã tạo bảng Lead ở Bước 4, làm bằng lark-cli, không qua nút "Chia sẻ". Rồi chạy khoi-tao.ps1 một lần trên máy để tạo 5 bảng 14.1 đến 14.5 và kéo dữ liệu lần đầu; xong xoá các giá trị bí mật khỏi file.

3

Đưa máy lên Cloudflare, tự dán 3 bí mật

Trong thư mục cloudflare-worker: npx wrangler login, điền LARK_APP_ID và LARK_BASE_ID vào wrangler.toml, rồi npx wrangler deploy. Bí mật thì bạn tự bấm đúp: DAN-MA-LARK.bat (copy App Secret Lark trước, bằng nút copy), DAN-MA-FB.bat (copy token Facebook trước), TAO-RUN-KEY.bat. Mỗi file tự lấy mã từ bộ nhớ tạm, không hiện ra màn hình, AI không nhìn thấy.

4

Xem danh sách trước, đồng ý rồi mới bật đăng thật

Máy mặc định chỉ liệt kê, chưa đăng. Mở https://<tên-máy>.workers.dev/xem?key=<RUN_KEY> xem bài máy sẽ đăng. Có bài quá hạn dồn lại thì dời lịch bằng /doi-lich trước. Ổn rồi mới đổi CRON_DANG_THAT = "true" và deploy lại. Sau đó mở bảng Lark xem cột Log, link bài, đừng chỉ tin thông báo thành công.

Ảnh/video đăng lấy từ đâu? Cột Ảnh-video ở trên không tự có nội dung — cần bạn (hoặc AI) đưa file vào TRƯỚC khi tới giờ đăng, qua 1 trong 2 cách: (1) tự thiết kế ảnh bằng Canva nhờ Claude AI — xem chi tiết ở Bước 13 (Content & Video); (2) cắt sẵn từ video dài bằng Viral Short Studio — xem Bước 17. Bước 13 nằm ngay trước bước này, còn Bước 17 nằm sau trong hành trình 22 bước — bạn có thể đọc trước nếu cần ảnh ngay.

Điền 1 lần, dán khối lệnh cho Claude AI

Chỉ điền 2 giá trị KHÔNG bí mật (định danh, không phải token) — FB_USER_TOKEN và LARK_APP_SECRET tuyệt đối không gõ vào đây, bạn tự dán bằng các file DAN-MA ở Bước 3.

Lấy ở Credentials & Basic Info của App Lark vừa tạo (Bước 1).
Đoạn mã trong link Base, vd .../base/<LARK_BASE_ID> — dùng lại đúng Base ở Bước 4, không tạo Base mới.
Mọi giá trị bạn gõ chỉ nằm trong trình duyệt — trang không gửi đi đâu, không lưu lại.

Khối lệnh — dán vào Claude AI


    

Chưa điền ô nào — khối lệnh đang ở dạng mẫu.

⚠ Bẫy đã gặp thật + cách gỡ

🔴 Nghiêm trọng nhất: bản ghi CHƯA gán lịch đăng bị đăng NGAY LẬP TỨC, không chờ

Nếu tạo 1 bản ghi mới trong bảng mà quên điền cột "Ngày giờ đăng" (để trống), hệ thống cron coi bản ghi đó là "sẵn sàng đăng ngay" thay vì "chưa tới lịch" — bài sẽ lên Facebook thật ngay trong lần cron chạy tiếp theo (tối đa 30 phút sau), dù bạn chưa muốn đăng.

Cách gỡ: LUÔN điền ngày giờ đăng cụ thể (trong tương lai) ngay khi tạo bản ghi mới — không bao giờ để trống cột này, kể cả tạm thời.

1. Đăng bài báo lỗi token dai dẳng dù token vẫn còn hạn

Script đăng bài đọc token đã lưu sẵn trong 1 bảng riêng, KHÔNG đọc trực tiếp token gốc mới nhất mỗi lần chạy — nên sau khi đổi/làm mới token gốc, script vẫn dùng bản cũ đã lưu và báo lỗi.

Cách gỡ: sau mỗi lần đổi token, luôn chạy lại bước "lấy danh sách Fanpage" trước để làm mới token đã lưu trong bảng, rồi mới chạy bước đăng bài.

2. Bài đăng lên nhưng chỉ mình bạn (Admin) nhìn thấy, khách không thấy gì

App Facebook mặc định ở chế độ thử nghiệm ("Development Mode") — bài vẫn đăng thành công về mặt kỹ thuật, nhưng Facebook chỉ hiện cho người quản trị App thấy.

Cách gỡ: vào cài đặt App Facebook, chuyển từ chế độ thử nghiệm sang chế độ chính thức ("Live Mode").

3. Lark Base không tự lặp lịch theo phút

Tính năng tự động hoá có sẵn của Lark Base không hỗ trợ chạy lặp lại theo từng phút/nửa giờ (dropdown chỉ có ngày/tuần/tháng/năm) — không dùng được để tự động đăng bài đúng giờ.

Cách gỡ: lịch chạy nằm ở Cloudflare (crons trong wrangler.toml), chạy đúng giờ mỗi 5 phút.

4. Bật máy lại sau thời gian dừng là đăng dồn cả loạt bài

Mọi bài có lịch đã qua mà chưa "Thành công" sẽ được đăng hết trong một lượt. Gặp thật 14/10/2026: máy cũ chạy bằng GitHub bị dừng 2 tuần (tài khoản GitHub bị gắn cờ khoá bất ngờ), bảng tồn 29 bài; ngoài ra 1 dòng còn sót cờ "Đăng ngay" suýt bị đăng sớm.

Cách gỡ: luôn gọi /xem trước khi bật; dời bài tồn bằng /doi-lich; xoá cờ sót bằng /xoa-co. Đây cũng là lý do hệ thống bỏ GitHub, chuyển hẳn sang Cloudflare.

5. Bài đăng OK nhưng comment tự động ("Comment ebook") lúc nào cũng lỗi âm thầm

Script có sẵn tính năng tự đăng 1 comment quảng bá (vd link ebook/lead magnet) ngay dưới bài vừa đăng, đọc từ cột riêng trong bảng. Đăng bài dùng quyền khác với đăng comment — nếu tạo token Facebook ở Bước 1 thiếu đúng quyền pages_manage_engagement (chỉ có pages_read_engagement — quyền ĐỌC comment, không phải quyền ĐĂNG), bài chính vẫn lên bình thường nhưng comment sẽ luôn lỗi, log chỉ ghi ngắn gọn "cmt lỗi" không rõ lý do.

Cách gỡ: vào App Facebook → "Trường hợp sử dụng" → Tuỳ chỉnh mục "Quản lý mọi thứ trên Trang" → thêm quyền pages_manage_engagement (phải bật ở đây trước — gõ thẳng vào ô tìm của Graph API Explorer sẽ không chọn được nếu app chưa "mở khoá" quyền này) → tạo lại token dài hạn với đủ 8 quyền → dán lại bằng DAN-MA-FB.bat → bắt buộc làm mới bảng Fanpage (/lay?viec=pages&ghi=1) để ghi token mới vào bảng Fanpage (xem bẫy #1 — script đọc token đã cache, không đọc token gốc mới nhất).

🔴 6. Mọi bài đăng lỗi hàng loạt sau khi vừa tạo token mới trông có vẻ ổn — token dán vào Secret là bản NGẮN HẠN, không phải dài hạn

Đây là lỗi đã gặp thật nhiều lần nhất trong toàn bộ hệ thống này. Ở bước Access Token Debugger, sau khi dán token vào ô tìm, trang hiện ra 1 token ngắn hạn (chỉ sống 1-2 tiếng) NGAY TỪ ĐẦU — nếu vô tình copy nhầm token này (thay vì bấm nút "Extend Access Token" để lấy bản dài hạn thật) thì mọi thứ vẫn chạy bình thường trong 1-2 tiếng đầu, làm tưởng đã xong — rồi sau đó toàn bộ bài đăng đồng loạt lỗi OAuthException (code 190): Session has expired, kéo dài tới khi có người phát hiện.

Nguy hiểm hơn: script kiểm tra token có sẵn (bước "lấy danh sách Fanpage") chỉ báo hạn "quyền truy cập dữ liệu" (một con số GDPR luôn hiện xa ~90 ngày bất kể token ngắn hay dài hạn) — dòng "Token FB hợp lệ" hiện ra KHÔNG chứng minh được token còn sống lâu, dễ khiến người mới yên tâm nhầm.

Cách gỡ: sau khi bấm "Extend Access Token" ở Access Token Debugger, tìm đúng dòng chữ xác nhận kiểu "Mã truy cập dài hạn mới này sẽ không bao giờ hết hạn" hiện ra trong 1 ô KẾT QUẢ MỚI bên dưới — copy đúng token trong ô đó, không copy token đã dán ở ô tìm kiếm phía trên. Nếu không thấy dòng xác nhận này xuất hiện, chưa Extend thành công, đừng dán token đó lên máy.

7. Lark khoá thì máy không đọc được lịch đăng

Máy đăng bài đọc lịch ở Lark; Lark hết hạn mức API (Bước 4) là cả loạt bài hẹn sẵn không lên.

Cách gỡ: nhờ Claude hẹn giờ thẳng trên Facebook (Facebook tự đăng đúng giờ, không cần Lark), ảnh để ở một trang công khai trên Cloudflare. Máy nhớ bài nào đã hẹn để khi Lark mở lại không đăng trùng. Trước khi hẹn, đối chiếu với các bài gần nhất trên Page.