FB Personal Poster
/install fb-personal-poster
FB Personal Poster
Post text + photos to personal Facebook timeline via Patchright stealth browser automation.
Why Not Graph API?
Facebook removed publish_actions permission in 2018. API cannot post to personal timelines.
Only browser automation works — this skill uses Patchright (stealth Chromium) to mimic human behavior.
Requirements
cd scripts/ && pip install -r requirements.txt
python -m patchright install chromium
Environment Variables
| Variable | Required | Description |
|---|---|---|
FB_COOKIE_FILE |
✅ | Path to Facebook cookies JSON (Selenium format). Full account access. |
FB_STATE_FILE |
✅ | Writable path for Playwright state (default: /tmp/fb_state.json) |
FB_DRY_RUN |
— | true (default) = preview only. false = actually post. |
FB_USER_AGENT |
— | Override browser user agent |
How to Get Cookies
- Log in to Facebook in Chrome (manually, once)
- Export all
facebook.comcookies as JSON via EditThisCookie extension - Save to path in
FB_COOKIE_FILEwithchmod 600
Cookies last ~30–90 days. Re-export when expired.
Usage
Text-only post
FB_COOKIE_FILE=~/.fb_cookies.json FB_DRY_RUN=false \
python3 scripts/fb_post.py -m "Hello from automation!"
Post with photos
FB_COOKIE_FILE=~/.fb_cookies.json FB_DRY_RUN=false \
python3 scripts/fb_post.py -m "Beautiful day!" -p photo1.jpg photo2.jpg
Dry run (default)
python3 scripts/fb_post.py -m "Test post" -p photo.jpg
# No actual posting — previews the flow
OpenClaw Integration (Recommended)
Use the built-in browser tool — already proven working for personal timeline posting:
# Step 1: Navigate to Facebook
browser(action="navigate", url="https://www.facebook.com/")
# Step 2: Confirm on personal profile (url should be facebook.com/me)
# Step 3: Click "What's on your mind"
browser(action="act", kind="click", ref="[post input box]")
# Step 4: Type message
browser(action="act", kind="type", text="Your message here")
# Step 5: Upload photo (if needed)
browser(action="upload", paths=["/path/to/photo.jpg"])
# Step 6: Set sharing to Public
# Step 7: Click Post button
browser(action="act", kind="click", ref="[post button]")
Tips
- Facebook 頁面結構複雜,selector 會變,用
snapshot找當前可用的 ref - 上傳圖片用
browser(action="upload")功能 - 如果 timeout,重試一次通常就好
- 個人動態和粉絲專頁的操作流程不同,注意確認在正確頁面
Safety
- Dry-run is ON by default — must explicitly set
FB_DRY_RUN=falsefor live posting - Cookies stored locally with
chmod 600— never committed to git - Human-like delays and typing speed to avoid detection
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install fb-personal-poster - 安装完成后,直接呼叫该 Skill 的名称或使用
/fb-personal-poster触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
FB Personal Poster 是什么?
Post text and photos to personal Facebook timeline using browser automation (Patchright/Playwright). Use when: user asks to post to personal Facebook, publis... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 110 次。
如何安装 FB Personal Poster?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install fb-personal-poster」即可一键安装,无需额外配置。
FB Personal Poster 是免费的吗?
是的,FB Personal Poster 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
FB Personal Poster 支持哪些平台?
FB Personal Poster 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 FB Personal Poster?
由 oangogah-claw(@oangogah-claw)开发并维护,当前版本 v1.0.0。