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:
- 1. APIFYTOKEN — https://console.apify.com/account/integrations
- GEMINIAPIKEY — https://aistudio.google.com/app/apikey
- FBPAGEID — ID Facebook Page
- FBPAGEACCESSTOKEN — 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:
CODEBLOCK0
Script trả về JSON với các trường:
- -
text — nội dung bài viết - INLINECODE2 — array URL ảnh
- INLINECODE3 — URL video (nếu có)
- INLINECODE4 ,
commentsCount — engagement stats - INLINECODE6 — tên page gốc
Nếu lỗi → thử actor thay thế INLINECODE7
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:
CODEBLOCK1
Chạy script tạo ảnh:
CODEBLOCK2
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ề INLINECODE8
Đă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
CODEBLOCK5
References
FB 转发技能
工作流程:抓取 → 重写 → 图片 → 发布
首次使用所需凭证
如果尚未提供,请询问用户提供以下信息:
- 1. APIFYTOKEN — https://console.apify.com/account/integrations
- GEMINIAPIKEY — https://aistudio.google.com/app/apikey
- FBPAGEID — Facebook 页面 ID
- FBPAGEACCESSTOKEN — 页面访问令牌(需要 pagesmanageposts 权限)
建议用户将其保存到 OpenClaw 的 secrets/env vars 中,避免重复输入。
详细工作流程
步骤 1:抓取 Facebook 帖子
运行抓取脚本:
bash
python3 scripts/scrapefb.py POSTURL> TOKEN>
脚本返回包含以下字段的 JSON:
- - text — 帖子内容
- images — 图片 URL 数组
- video — 视频 URL(如有)
- likesCount、commentsCount — 互动数据
- pageName — 原始页面名称
如果出错 → 尝试使用替代 actor apify~facebook-scraper
步骤 2:分析并重写帖子
分析原始帖子:
- - 类型:新闻、情感、知识、幽默、病毒式传播...
- 语气:严肃、愉快、感人...
- 长度:短/中/长
重写原则:
- - 不得逐字复制 — 完全改写
- 保留核心信息(数据、名称、事件)
- 开头添加强力钩子
- 以行动号召或互动问题结尾
- 适度使用表情符号
- 长度:150-400 字(Facebook 最佳长度)
按类型模板:
| 类型 | 结构 |
|---|
| 新闻 | [事件钩子] → [内容] → [评论] → 你怎么看? |
| 知识 |
[你知道吗钩子] → [列表] → [要点总结] → 你试过了吗? |
| 情感 | [故事钩子] → [重写] → [教训] → @分享的人! |
| 幽默 | [幽默钩子] → [内容] → 是不是?快分享! |
步骤 3:使用 Gemini 生成图片
根据重写后的内容编写图片提示:
[主要视觉描述]、[风格:写实/插画/信息图]、
[合适的颜色/氛围]、无文字叠加、高质量、16:9 比例
运行图片生成脚本:
bash
python3 scripts/generateimage.py PROMPT> APIKEY> /tmp/fb_image.png
步骤 4:发布到 Facebook 页面
先上传图片(如有):
bash
python3 scripts/postfb.py upload-photo ID> TOKEN> /tmp/fbimage.png
→ 返回 photo_id
发布帖子:
bash
python3 scripts/postfb.py post ID> TOKEN> ID>
发布前检查清单
- - [ ] 向用户展示重写后的帖子
- [ ] 展示已生成的图片(或描述)
- [ ] 询问:您想直接发布还是需要修改什么?
- [ ] 仅在用户确认后发布 ✅
错误处理
| 错误 | 原因 | 处理方式 |
|---|
| Apify 返回空 | 链接为私密/已删除 | 告知用户,请手动粘贴内容 |
| Gemini 429 |
速率限制 | 10 秒后重试 |
| FB 200 | 令牌过期 | 指导刷新页面访问令牌 |
| FB 368 | 违反政策 | 减轻重写力度,删除敏感词汇 |
流程总结
用户提供 Facebook 链接
↓
[Apify] 抓取内容
↓
[Claude] 分析 → 重写
↓
[Gemini] 生成图片
↓
[Claude] 预览 → 请求确认
↓
[FB Graph API] 上传 → 发布
↓
返回已发布帖子的链接 ✅
参考资料