Facebook
Overview
Connect Facebook Pages, scopes, capabilities, and known limits.
Onepostly maps the Facebook Pages Graph API (Facebook Login) into the same /v1/* surface as other platforms. This section covers Facebook-only behavior.
In this section
| Page | Topics |
|---|---|
| Posts | Publish text, photo, multi-photo, video, Stories; schedule; remote delete |
| Comments | List, create, delete comments |
| Engagement | Like / unlike as the Page |
| Insights | Analytics / normalized metrics |
Cross-platform API flow: Media, Webhooks.
Connect
- Dashboard → Connections → connect Facebook
- Approve scopes in the Facebook Login consent screen
- Select one Page on the hosted picker (or via headless list/select — see Connection)
- That Page becomes a single connection. Connect again to add another Page.
- Resolve
connectionIdwith your API key:
curl https://api.onepostly.com/v1/connections \
-H "x-api-key: op_YOUR_KEY"Use the matching row’s id (where platform is "facebook") as connectionId in publish requests.
You need at least one Facebook Page with a role. Personal profiles alone cannot publish via this API.
After scope upgrades, reconnect Facebook so the new scopes appear on the token.
OAuth scopes
| Scope | Used for |
|---|---|
pages_show_list | Enumerate managed Pages |
pages_manage_posts | Publish feed / photos / videos / stories |
pages_read_engagement | Post content + engagement foundation |
pages_read_user_content | Comments / UGC on the Page |
pages_manage_engagement | Create/delete comments + like/unlike as the Page |
read_insights | Post-level insights metrics |
Facebook Login → Page selection. Reconnect if you see TOKEN_INVALID.
Auth errors
| Code | Meaning |
|---|---|
TOKEN_INVALID / 401 | Expired or invalid token → reconnect |
PERMISSION_DENIED / 403 | Missing scope → reconnect with the required scopes |
Capabilities
| Action | Supported | Notes |
|---|---|---|
| Create post | Yes | POST /v1/posts |
| Text-only | Yes | |
| Image | Yes | Single photo |
| Multi-photo | Yes | 2–10 images only (no video mix) |
| Video | Yes | mediaKind: "video" |
| Stories | Yes | Photo or video Page stories |
| Thread / quote | No | X / Threads features |
| Schedule | Yes | scheduledFor + timezone |
| Remote delete | Yes | DELETE /v1/posts/:id/destinations/:destinationId |
| Insights | Yes | |
| List comments | Yes | Feed / photo / video; Stories unsupported |
| Create / delete comment | Yes | Requires pages_manage_engagement |
| Like / unlike | Yes | As the Page (pages_manage_engagement) |
| Bookmark / retweet | No |
Known limitations
- Multi-photo posts are images only — mixing video URLs returns
INVALID_MEDIA - Story video upload is capped at 100 MB
- Stories are ephemeral; comments are unsupported and insights may be sparse / short-lived
- Video publish may continue processing on Facebook after the destination is marked published
- Distinct from Instagram Business Login — use a separate Facebook app connection