Quick reference
Connect an account
POST /v1/accounts/connect/facebook. Standard Facebook Login for Business OAuth. After complete, the provider calls GET /me/accounts and creates one platform_accounts row per Page the user manages, each carrying its own Page Access Token (the non-expiring token used for publishing, distinct from the User Access Token).
If the user manages no Pages: facebook.pages.none. Personal profiles cannot publish via the Graph API and are out of scope for v1.
Scopes
extended adds insights / engagement scopes (pages_read_user_content, pages_manage_engagement).
Token lifecycle
The User Access Token from the OAuth handshake is short-lived; the provider swaps it for a long-lived (~60-day) user token, then derives a Page Access Token per Page via/me/accounts. Page Access Tokens are non-expiring as long as the user token stays fresh; refresh runs on schedule. token.expiring fires before expiry on the user token.
Post types
Text post
text.json
POST /{page-id}/feed with message.
Single image
single-image.json
POST /{page-id}/photos with caption.
Multi-image (up to 10)
multi-image.json
published=false via POST /{page-id}/photos, then creates the wall post with POST /{page-id}/feed carrying attached_media: [{ media_fbid }].
Single video
video.json
POST /{page-id}/videos with the media URL. Only one video per post; mixing image + video on the same post is rejected upfront.
Wisdom (platform-specific things that bite)
Common errors
What you can’t do (yet)
- Posting to a personal profile (Meta’s Graph API doesn’t expose write access to user feeds).
- First comment / threaded replies as the Page.
- Story posts, Reels (Facebook Reels live behind a separate publishing surface not in v1).
- Tagging users or co-authors.
- Targeted post audience (Facebook geo/demographic targeting).
- Reading comments, reactions, or insights (those scopes are
extendedand the read APIs aren’t wired in v1).
API reference
POST /v1/posts— primary publish.POST /v1/media— upload images/videos formediaIdreferences.POST /v1/accounts/connect/facebook— start a Facebook OAuth flow.

