Facebook is supported in Outstand through the Bring Your Own Key (BYOK) model via Meta's Facebook Graph API. This allows you to use your own Meta app credentials to connect Facebook Pages and publish posts through Outstand's unified API.
Note: You can skip the approval process by using our Managed Keys service. Contact our support team to learn more at contact@outstand.so. Turnaround time is typically 1 business day.
Quick Information
Our application works with the following OAuth scopes:
pages_read_user_content- Basic Facebook Page access (allows reading profile)business_management- Permission to manage business pagespages_show_list- Permission to read engagement metricspages_manage_posts- Permission to publish postspages_read_engagement- Permission to read engagement metricspages_manage_engagement- Permission to interact with engagement
These are the scopes that are required for the integration to work.
Facebook Graph API
We utilize Meta's Facebook Graph API to connect to Facebook Pages and publish posts. The version of the API we use is v24.0.
Outstand OAuth Callback URL
When configuring your Meta app, you must add the following OAuth redirect URI:
https://www.outstand.so/app/api/socials/facebook/callbackThis is where Facebook will redirect users after they authorize your app. Make sure to add this URL to:
- Facebook Login → Settings → Valid OAuth Redirect URIs
- Settings → Basic → App Domains: Add
outstand.so
White-labeling authentication flow
For full white-labeling integration, you need to follow the following flow:
- Call the
/v1/social-networks/:network/auth-urlendpoint to get the authentication URL. You MUST provide a redirect_uri in the request body. - The redirect URI must lead to a Facebook-specific callback URL in your application. We will redirect to it with a
sessionquery parameter. - Your callback URL must call the
/v1/social-accounts/pending/:sessionTokenendpoint (docs link) to get the pending connection details. - The response will contain a list of available pages/accounts that can be connected.
- You can then redirect the user to a selection page where they can select the pages/accounts they want to connect.
- Once the user has selected the pages/accounts, you can call the
/v1/social-accounts/pending/:sessionToken/finalizeendpoint (docs link) to finalize the connection. - The response will contain the connected accounts.
- You can then use the connected accounts to post on behalf of the user.
The full flow is illustrated in the following diagram:
Media Requirements
When publishing posts with media to Facebook Pages, Outstand handles media processing automatically:
How Media Upload Works
- Media Download: Outstand downloads the media from your provided URL server-side
- Binary Upload: The media is then uploaded directly to Facebook as binary data
- Post Creation: Once the media is uploaded, the post is created with the media attached
This approach ensures reliable media uploads and avoids issues where Facebook cannot access your media URLs.
Image Requirements
| Requirement | Specification |
|---|---|
| Formats | JPEG, PNG, GIF, BMP, TIFF, WEBP |
| Maximum size | 10 MB |
| Minimum dimensions | 100x100 pixels |
| Maximum dimensions | 4096x4096 pixels |
Video Requirements
| Requirement | Specification |
|---|---|
| Formats | MP4, MOV, AVI, WMV, FLV, WEBM |
| Maximum size | 4 GB |
| Minimum duration | 1 second |
| Maximum duration | 240 minutes |
| Recommended aspect ratio | 16:9 or 9:16 |
Media URL Requirements
Your media URLs must:
- Be publicly accessible over HTTPS
- Return a valid
Content-Typeheader (e.g.,image/jpeg,video/mp4) - Be available at the time of publishing (Outstand downloads the media when publishing)
- Not require authentication or special headers to access
Example with Media
{
"containers": [
{
"content": "Check out our latest update!",
"media": [
{
"url": "https://media.yoursite.com/images/update.jpg",
"filename": "update.jpg"
}
]
}
],
"accounts": ["facebook"]
}Common Errors
| Error | Cause | Solution |
|---|---|---|
(#324) Requires upload file | Legacy error - should not occur with current implementation | Contact support if you see this error |
(#100) Invalid image | Image format not supported or corrupted | Verify image is a valid JPEG/PNG |
(#1) An unknown error occurred | Temporary Facebook API issue | Retry after a few minutes |
Feel free to get in touch with our support team if you have any questions or need assistance with the integration.