Workflow: Scrape → Rewrite → Image → Post
Nếu chưa có, hỏi user cung cấp:
pages_manage_posts)> Gợi ý user lưu vào OpenClaw secrets/env vars để không nhập lại.
Chạy script scrape:
python3 scripts/scrape_fb.py "<FB_POST_URL>" "<APIFY_TOKEN>"
Script trả về JSON với các trường:
text — nội dung bài viếtimages — array URL ảnhvideo — URL video (nếu có)likesCount, commentsCount — engagement statspageName — tên page gốcNếu lỗi → thử actor thay thế apify~facebook-scraper
Phân tích bài gốc:
Nguyên tắc viết lại:
Template theo thể loại:
| Thể loại | Cấu trúc |
|---|---|
| ---------- | ---------- |
| Tin tức | [Hook sự kiện] → [Nội dung] → [Bình luận] → "Bạn nghĩ sao?" |
| Kiến thức | [Hook "Bạn có biết"] → [Danh sách] → [Takeaway] → "Bạn đã thử chưa?" |
| Cảm xúc | [Hook câu chuyện] → [Viết lại] → [Bài học] → "Tag ngưỉi chia sẻ!" |
| Hài hước | [Hook hài] → [Nội dung] → "Đúng không? Share ngay!" |
Soạn image prompt từ nội dung đã rewrite:
[Mô tả visual chính], [style: realistic/illustrative/infographic],
[màu sắc/mood phù hợp], no text overlay, high quality, 16:9 ratio
Chạy script tạo ảnh:
python3 scripts/generate_image.py "<IMAGE_PROMPT>" "<GEMINI_API_KEY>" /tmp/fb_image.png
Upload ảnh trước (nếu có):
python3 scripts/post_fb.py upload-photo "<PAGE_ID>" "<PAGE_TOKEN>" /tmp/fb_image.png
→ Trả về photo_id
Đăng bài:
python3 scripts/post_fb.py post "<PAGE_ID>" "<PAGE_TOKEN>" "<MESSAGE>" "<PHOTO_ID>"
| Lỗi | Nguyên nhân | Xử lý |
|---|---|---|
| ----- | ------------ | ------- |
| Apify rỗng | Link private/xóa | Báo user, xin paste nội dung thủ công |
| Gemini 429 | Rate limit | Retry sau 10s |
| FB 200 | Token hết hạn | Hướng dẫn refresh Page Access Token |
| FB 368 | Vi phạm policy | Rewrite nhẹ hơn, bỏ từ nhạy cảm |
User đưa link FB
↓
[Apify] Scrape nội dung
↓
[Claude] Phân tích → Viết lại
↓
[Gemini] Tạo ảnh
↓
[Claude] Preview → Xin xác nhận
↓
[FB Graph API] Upload → Đăng
↓
Trả về link bài đã đăng ✅
共 1 个版本