> ## Documentation Index
> Fetch the complete documentation index at: https://www.posted.cc/llms.txt
> Use this file to discover all available pages before exploring further.

# Facebook Pages

> Connect your Facebook Pages and publish text, photos, videos and link previews.

Connect Facebook Pages to your team and publish text, photos, videos and link previews. Choose which Pages to connect after signing in. Each Page has its own preview, schedule and delivery status.

Facebook personal profiles cannot publish through this API. Meta removed the permission for apps to post as a person; connect a Page you manage instead. See [Meta’s publishing permission update](https://developers.facebook.com/blog/post/2018/07/31/platform-update-publish-permission/).

## Connect your Pages

<Steps>
  <Step title="Configure the provider">
    Set up your Meta app using the guide below, then add the required
    environment variables to your Posted installation.
  </Step>

  <Step title="Sign in to Facebook">
    A team administrator opens **Connections → Add connection**, selects
    **Facebook Pages** and signs in with a Facebook account that manages the
    Pages.
  </Step>

  <Step title="Choose Pages">
    Allow Page access in Facebook. Back in Posted, select the Pages your team
    should publish to and click **Connect Pages**. Cancel leaves your
    connections unchanged.
  </Step>

  <Step title="Compose a post">
    Select the connected Pages in **Choose Accounts**. Review each preview, then
    publish or schedule your post.
  </Step>
</Steps>

Select only the Pages your team should use. Each chosen Page becomes a team connection; the example below selects one of two available Pages.

<Frame caption="Choose Facebook Pages to connect to your team.">
  <img src="https://mintcdn.com/posted-social/i6hOTljIzQPnlP9f/assets/providers/facebook-pages/01-choose-pages@2x.png?fit=max&auto=format&n=i6hOTljIzQPnlP9f&q=85&s=70db10558858c133e4afde1a2659d2b3" alt="Posted Facebook Pages selection with Studio North selected and Studio Journal unselected." width="1440" height="1000" data-path="assets/providers/facebook-pages/01-choose-pages@2x.png" />
</Frame>

## Required environment variables

Add your Meta app ID and secret to the API and worker, then restart both services.

```dotenv theme={"system"}
POSTED_FACEBOOK_CLIENT_ID=YOUR_META_APP_ID
POSTED_FACEBOOK_CLIENT_SECRET=YOUR_META_APP_SECRET
```

If you use a Facebook Login for Business configuration, choose **User access token** and add its configuration ID to both services. A system-user token configuration uses a different connection flow and is not supported here.

```dotenv theme={"system"}
POSTED_FACEBOOK_CONFIG_ID=YOUR_USER_TOKEN_CONFIGURATION_ID
```

## Set up your Meta app

Open [Meta for Developers](https://developers.facebook.com/apps/). You can add Page management to an existing app, including an app used for Threads, when Meta offers the use case. Otherwise, create a separate app.

<Steps>
  <Step title="Add Page management">
    Open **Use cases → Add use cases**, select **Manage everything on your Page** and click **Save**.

    <Frame caption="Add the Page management use case to your app.">
      <img src="https://mintcdn.com/posted-social/sMaW_Ur-VZhFE2XY/assets/providers/facebook-pages/02-add-page-use-case@2x.png?fit=max&auto=format&n=sMaW_Ur-VZhFE2XY&q=85&s=5f7461917fd7a3832828a37ecd70d363" alt="Meta Add more use cases dialog with Manage everything on your Page selected." width="1800" height="984" data-path="assets/providers/facebook-pages/02-add-page-use-case@2x.png" />
    </Frame>

    Meta may show a reminder about the requirements for this use case. Click **Add to app** to continue.

    <Frame caption="Confirm the new use case.">
      <img src="https://mintcdn.com/posted-social/sMaW_Ur-VZhFE2XY/assets/providers/facebook-pages/03-confirm-use-case@2x.png?fit=max&auto=format&n=sMaW_Ur-VZhFE2XY&q=85&s=5cf6d13cfb67f105c224c74d30796a3f" alt="Meta confirmation dialog with Add to app highlighted." width="1800" height="984" data-path="assets/providers/facebook-pages/03-confirm-use-case@2x.png" />
    </Frame>
  </Step>

  <Step title="Open the Page settings">
    Back in **Use cases**, click **Customize** beside **Manage everything on your Page**.

    <Frame caption="Open the Page management settings.">
      <img src="https://mintcdn.com/posted-social/sMaW_Ur-VZhFE2XY/assets/providers/facebook-pages/04-customize-pages@2x.png?fit=max&auto=format&n=sMaW_Ur-VZhFE2XY&q=85&s=36d41a2364ec8e23308135f4100685e4" alt="Meta use cases showing Threads and Page management with the Page Customize button highlighted." width="1800" height="984" data-path="assets/providers/facebook-pages/04-customize-pages@2x.png" />
    </Frame>
  </Step>

  <Step title="Check the permissions">
    In **Permissions and features**, add `pages_show_list`, `pages_read_engagement`, `pages_manage_posts` if they are not already present. **Ready for testing** means you can test with eligible app-role accounts. Select additional permissions based on the scope of your Posted use.

    <Frame caption="Enable the permissions for your Posted use.">
      <img src="https://mintcdn.com/posted-social/sMaW_Ur-VZhFE2XY/assets/providers/facebook-pages/05-page-permissions@2x.png?fit=max&auto=format&n=sMaW_Ur-VZhFE2XY&q=85&s=1a4ee42c0fa1702f8628928f8505be23" alt="Meta Page permissions with pages_manage_posts, pages_read_engagement and pages_show_list ready for testing." width="1800" height="984" data-path="assets/providers/facebook-pages/05-page-permissions@2x.png" />
    </Frame>
  </Step>

  <Step title="Save the callback URLs and credentials">
    Open **Facebook Login for Business → Settings**. Enable **Client OAuth login** and **Web OAuth login**, then add the URLs below and save. Replace `{{POSTED_API_URL}}` with your Posted API origin, including `https://`.

    ```text title="Valid OAuth Redirect URIs" theme={"system"}
    {{POSTED_API_URL}}/api/social/callback/facebook-pages
    ```

    ```text title="Deauthorize callback URL" theme={"system"}
    {{POSTED_API_URL}}/api/social/facebook/deauthorize
    ```

    ```text title="Data Deletion Request URL" theme={"system"}
    {{POSTED_API_URL}}/api/social/facebook/data-deletion
    ```

    <Frame caption="Configure Facebook Login for Business with your installation's callback URLs.">
      <img src="https://mintcdn.com/posted-social/sMaW_Ur-VZhFE2XY/assets/providers/facebook-pages/06-callback-settings@2x.png?fit=max&auto=format&n=sMaW_Ur-VZhFE2XY&q=85&s=484b6f7e129875606f91e139f2992877" alt="Facebook Login for Business settings with OAuth redirect and deauthorization URLs entered and the data deletion section below." width="1800" height="984" data-path="assets/providers/facebook-pages/06-callback-settings@2x.png" />
    </Frame>

    Copy the regular **App ID** and **App Secret** from **App settings → Basic** into the environment variables above. If the same Meta app also uses Threads, keep using the separate **Threads app ID** and **Threads app secret** for that provider.

    If you create a Facebook Login for Business configuration, select **User access token** and save its ID as `POSTED_FACEBOOK_CONFIG_ID`.
  </Step>

  <Step title="Complete Meta's access requirements">
    Complete the app's basic details, privacy policy and contact information. During development, test with an account that has an app role and permission to create content on the Page. Complete the App Review, business verification and access requirements shown in your Meta dashboard before connecting accounts outside your app roles.
  </Step>
</Steps>

Only Pages where the signed-in account can create content appear in Posted. If a Page is missing, check the permissions allowed during login and the account’s Page access, then start a new connection.

## What you can publish

Posted supports up to 3,000 characters, ten photos or one video per Page post. Videos can be up to 30 minutes within Posted’s upload limit. A GIF is converted to a video before publishing. Link-only posts include a Facebook link preview; Facebook controls the final appearance.

A sequence publishes as separate Page posts in order. Facebook Pages does not create a reply thread. See [Publishing across accounts](/publishing-across-accounts) for shared media behavior, reconnecting and troubleshooting.

Posted uses Graph API `v26.0`. See Meta’s [Page app setup](https://developers.facebook.com/documentation/pages-api/create-an-app), [Page publishing](https://developers.facebook.com/documentation/pages-api/posts) and [video publishing](https://developers.facebook.com/documentation/video-api/guides/publishing) guides for provider requirements.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.