← Back to Skills Marketplace
oangogah-claw

FB Personal Poster

by oangogah-claw · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
110
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install fb-personal-poster
Description
Post text and photos to personal Facebook timeline using browser automation (Patchright/Playwright). Use when: user asks to post to personal Facebook, publis...
README (SKILL.md)

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

  1. Log in to Facebook in Chrome (manually, once)
  2. Export all facebook.com cookies as JSON via EditThisCookie extension
  3. Save to path in FB_COOKIE_FILE with chmod 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=false for live posting
  • Cookies stored locally with chmod 600 — never committed to git
  • Human-like delays and typing speed to avoid detection
Usage Guidance
This skill appears to do what it says (automated posting to a personal Facebook timeline) but it requires a Facebook session cookie file (FB_COOKIE_FILE) which grants full access to your account. Before installing or running it: (1) verify the skill source and owner — the package shows no homepage and registry metadata omits the env vars the SKILL.md requires; treat this as a red flag. (2) Inspect the code yourself (or have someone you trust do so) and run in an isolated environment or throwaway account. (3) Do not reuse cookies from an important account — use a disposable/test account if possible. (4) Prefer the dry-run mode (FB_DRY_RUN=true) to confirm behavior first. (5) Confirm the patchright package/version you install comes from the official PyPI maintainer and consider pinning the version. (6) If you are not comfortable exporting and storing session cookies, avoid using this skill — browser automation that reuses session cookies can perform any action your account can, and could violate Facebook's terms of service or cause account lockouts.
Capability Analysis
Type: OpenClaw Skill Name: fb-personal-poster Version: 1.0.0 The skill automates Facebook posting by requiring the user to provide full session cookies via a JSON file (FB_COOKIE_FILE), which grants complete account access. It uses the 'patchright' library (a stealth Playwright fork) in scripts/fb_post.py to mimic human behavior and bypass bot detection. While the code appears to function as described and lacks evidence of data exfiltration or intentional malice, the requirement to handle raw session tokens and the use of stealth automation techniques are high-risk behaviors.
Capability Assessment
Purpose & Capability
Name/description, SKILL.md, and the included Python script all consistently implement posting to a personal Facebook timeline via Patchright/Playwright using session cookies or Playwright storage state. There are no unrelated services or credentials requested by the code; the required functionality (cookies/state and Playwright) is coherent with the stated purpose.
Instruction Scope
SKILL.md and the script instruct the agent to read a Facebook cookies JSON (FB_COOKIE_FILE) or Playwright storage state and to control a Chromium browser to navigate and interact with facebook.com. This is within the expected scope for automating personal-posting, but it requires full session cookies (which grant broad account access). The instructions also advise installing packages and running 'python -m patchright install chromium' — these steps are explicit and expected. No instructions appear to exfiltrate data to other endpoints.
Install Mechanism
There is no opaque download URL; the SKILL.md asks to pip install the requirement (patchright) and install Chromium via patchright. That is a common pattern for Playwright-like tooling. Note: pip installs can pull arbitrary code — verify the package source and version before installing in a sensitive environment.
Credentials
The skill requires a Facebook session cookie JSON (FB_COOKIE_FILE) and a writable FB_STATE_FILE as declared in SKILL.md and used in the script; these are sensitive because cookies provide full account access. However, the registry metadata lists no required environment variables or primary credential — a mismatch that reduces transparency. Requiring cookies is proportionate to the stated goal but the metadata omission is concerning and should be corrected/verified before use.
Persistence & Privilege
The skill does not request always:true, does not modify other skills or global agent settings, and has no service that would persistently run beyond user invocation. It writes/reads a local state file if configured, which is expected for Playwright sessions.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install fb-personal-poster
  3. After installation, invoke the skill by name or use /fb-personal-poster
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
Initial release: Post text + photos to personal Facebook timeline via Patchright stealth browser automation
Metadata
Slug fb-personal-poster
Version 1.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is 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... It is an AI Agent Skill for Claude Code / OpenClaw, with 110 downloads so far.

How do I install FB Personal Poster?

Run "/install fb-personal-poster" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is FB Personal Poster free?

Yes, FB Personal Poster is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does FB Personal Poster support?

FB Personal Poster is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created FB Personal Poster?

It is built and maintained by oangogah-claw (@oangogah-claw); the current version is v1.0.0.

💬 Comments