How to Post to a Facebook Page With the API (2026): Full Setup and the Traps
You can absolutely publish to a Facebook Page from your own code. The Graph API posts text, links, photos and videos to any Page you manage. What the tutorials skip is everything around that one API call: the permissions, the review, the mandatory business verification, and the way a single automated flag on your account can lock the whole process.
I just walked the entire path end to end. Here is the honest version.
What you need first
- A Meta developer account and a Meta app.
- A Facebook Page. The API posts to Pages only, never to personal profiles.
- Facebook Login for Business added to your app, with a valid OAuth redirect URI.
- Public privacy policy, terms, and data-deletion URLs that return 200.
- An app icon, a category, and a contact email.
- A verified business, eventually. More on that below.
The setup, step by step
1. Add Facebook Login and whitelist your redirect URI
In your app, add the Facebook Login product, then under its settings add your exact callback to Valid OAuth Redirect URIs and save. If it is not saved there, the login redirect fails validation and nothing works. Meta even gives you a validator to check the URI, which quietly stays red until you actually save the list.
2. Request the Page permissions
For scheduling and publishing you need:
pages_show_list
pages_read_engagement
pages_manage_posts
pages_manage_metadata
pages_manage_posts is the one that actually publishes. The others let you list the user's Pages, read Page info, and manage the connection.
3. Get a Page access token, not a user token
Posting uses a Page access token, which you derive from the user token after the person picks a Page. Then you publish:
POST /{page-id}/feed # text or link post
POST /{page-id}/photos # photo
POST /{page-id}/videos # video
4. Handle token longevity
You will want long-lived Page tokens, and for anything production-grade you end up using system users so tokens do not expire out from under you. That is more setup and more moving parts to monitor.
See how TimeToPost can help you implement these strategies.
The parts that turn a day into a month
App Review. Standard Access only works for you and your testers. To let real users connect their own Pages, pages_manage_posts and friends need Advanced Access, which means App Review: written justifications for every permission and a screencast of the real publish flow.
Business Verification is required. As with Instagram, Advanced Access is gated behind a connected verified business (mandatory since February 2023). No verified business portfolio, no public access.
public_profile flips to Advanced too. Facebook Login itself will warn that public_profile needs Advanced Access for public use. It is usually auto-granted, but it is one more box on the list.
The advertising-restriction trap. This is the killer. A new business portfolio can trigger an automated "your advertising access is restricted" enforcement, which also forbids creating business portfolios. Verification needs a portfolio. So the ban blocks the exact step that unblocks you. The only way out is an appeal that ranges from 48 hours to never opening at all.
You do not have to run a single ad to get hit by an advertising restriction. It fires on account signals, then quietly blocks the business tooling you need for a totally unrelated publishing feature.
Timeline and effort, honestly
| Step | Time | Blocking risk | |---|---|---| | App + Facebook Login + OAuth | 1 to 2 days | Low | | Page token plumbing | Half a day, ongoing upkeep | Silent expiry | | Business Verification | Days to weeks | High | | App Review (Facebook) | Days up to about 3 months | High | | Advertising-restriction appeal (if hit) | 48 hours to never | Severe |
Note that Facebook App Review specifically can run much longer than Instagram, up to around three months in the worst cases.
The honest math
For a single Facebook Page that you own and control, the DIY route can just about work with Standard Access in Live mode. The moment you want to let other people connect their Pages, you inherit the full stack: review, verification, token maintenance, and the ever-present risk of an account flag that halts everything.
TimeToPost carries the verified app and the approved permissions already. You connect your Page in two clicks and schedule immediately. We keep the tokens fresh and absorb the compliance overhead so you never touch the App Dashboard.
FAQ
Can I post to my personal Facebook profile via the API? No. The Graph API publishes to Pages only. Personal-profile publishing is not available.
Do I need Business Verification to post to my own Page? For your own Page with Standard Access in Live mode, often no. For letting other users connect their Pages, yes, because that needs Advanced Access.
How long does Facebook App Review take? Anywhere from a few days to roughly three months, depending on the permissions and how clean your submission is.
Will an advertising restriction really block a publishing feature? Indirectly, yes. It blocks business portfolio creation, and verification depends on having a portfolio.
If none of this sounds like a good use of your month, that is exactly the problem TimeToPost solves.