FB Repost Skill
Workflow: Scrape → Rewrite → Image → Post
Yêu cầu credentials (lần đầu)
Nếu chưa có, hỏi user cung cấp:
- APIFY_TOKEN — https://console.apify.com/account/integrations
- GEMINI_API_KEY — https://aistudio.google.com/app/apikey
- FB_PAGE_ID — ID Facebook Page
- FB_PAGE_ACCESS_TOKEN — Page Access Token (permission
pages_manage_posts)
Gợi ý user lưu vào OpenClaw secrets/env vars để không nhập lại.
Workflow chi tiết
Bước 1: Scrape bài viết Facebook
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ốc
Nếu lỗi → thử actor thay thế apify~facebook-scraper
Bước 2: Phân tích & Viết lại bài
Phân tích bài gốc:
- Thể loại: tin tức, cảm xúc, kiến thức, hài hước, viral...
- Tone: nghiêm túc, vui vẻ, cảm động...
- Độ dài: ngắn/vừa/dài
Nguyên tắc viết lại:
- KHÔNG copy nguyên văn — paraphrase hoàn toàn
- Giữ thông tin cốt lõi (số liệu, tên, sự kiện)
- Thêm hook mạnh ở đầu
- Kết bằng CTA hoặc câu hỏi tương tác
- Dùng emoji vừa phải
- Độ dài: 150-400 chữ (tối ưu Facebook)
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!" |
Bước 3: Tạo ảnh với Gemini
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
Bước 4: Đăng lên Facebook Page
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>"
Checklist trước khi đăng
- Hiển thị bài viết đã rewrite cho user xem
- Hiển thị ảnh đã tạo (hoặc mô tả)
- Hỏi: "Bạn muốn đăng luôn hay chỉnh sửa gì không?"
- Chỉ đăng khi user xác nhận ✅
Xử lý lỗi
| 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 |
Flow tóm tắt
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 ✅
References
- API docs chi tiết: references/api_docs.md