{"id":"6a50f4d120605ebab11dde6d","title":"2026 07 10 Meta Approval Facebook Instagram","path":"how-to/technical-articles/2026-07-10-meta-approval-facebook-instagram","contentMarkdown":"# 10-Jul-2026 — Publishing to Facebook and Instagram: the Meta approval process\n\n---\n\n> This page was updated on 25 August 2026 to match how publishing works now, including walks and social events.\n\nThis guide explains what Meta needs before <strong>your</strong> group or area website can publish to <strong>your</strong> Facebook Page and Instagram account, and how that same connection powers the on-site Instagram feed. It is written to be followed step by step, because the process is genuinely confusing the first time and Meta's own documentation assumes you already know how their pieces fit together.\n\nEach NGX site manages its own social media. There is no shared central Meta app that all groups hang off: create (or use) a Meta app for <strong>this</strong> website, connect <strong>this</strong> site's Page, then publish from <strong>this</strong> site.\n\nNGX does the fiddly technical parts for you. The usual path is: enter your Meta App ID and App Secret, click <strong>Connect Facebook</strong>, authorise, pick your Page, and NGX fills in the Page token and linked Instagram account. You can still paste a system-user token under Advanced if you prefer.\n\nThe Facebook and Meta screens below are linked so you can click through rather than hunting for them. You will need to be logged in as a Page admin.\n\n## Read this first - the single most important point\n\nYou do <strong>not</strong> need Meta's full App Review to start publishing to a Facebook Page and Instagram account that your group or area runs.\n\nMeta has two levels of access:\n\n- <strong>[Standard Access](https://developers.facebook.com/docs/graph-api/overview/access-levels/)</strong> - lets the app act on Pages and Instagram accounts that the people connected to it already administer. It needs <strong>no App Review</strong>. This is enough to get publishing working for your own Page and Instagram account.\n- <strong>[Advanced Access](https://developers.facebook.com/docs/graph-api/overview/access-levels/)</strong> - only needed when the app acts on Pages and accounts it does <strong>not</strong> administer. That is not the model for NGX sites: each site connects its own Page. That path also needs [Business Verification](https://www.facebook.com/business/help/2058515294284579) and [App Review](https://developers.facebook.com/docs/instagram-platform/app-review/).\n\nMost of the pain people hit is from assuming the whole thing needs App Review from day one. It does not. Get it working with Standard Access first, prove it end to end, and only take on App Review if you truly need to post to Pages you do not administer.\n\n```mermaid\nflowchart TD\n  A[\"Posting to a Facebook Page and Instagram account your group or area administers?\"] -->|Yes| B[\"Standard Access\"]\n  B --> C[\"No App Review needed<br/>Add the products and permissions, connect from NGX\"]\n  A -->|\"Need to post to Pages you do NOT administer\"| D[\"Advanced Access\"]\n  D --> E[\"Business Verification + App Review<br/>with a screencast per permission\"]\n  C --> F[\"Connect Facebook in NGX, then publish albums or events\"]\n  E --> F\n  style B fill:#E8F5EE,stroke:#9BC8AB,stroke-width:2px,rx:12,ry:12,color:#404143\n  style D fill:#FBEEDD,stroke:#E0B784,stroke-width:2px,rx:12,ry:12,color:#404143\n```\n\n## What this unlocks\n\nOnce connected, three things use the same Facebook Page token and linked Instagram account:\n\n1. <strong>Share album to social media</strong> on an album: pick images, write a caption, publish a multi-photo Facebook post and an Instagram carousel. Share is only offered to <strong>content administrators</strong>, and only on albums where <strong>Allow Share To Social Media</strong> is ticked.\n2. <strong>Walks and social events</strong> as <strong>Page posts</strong> linking back to the event on this site. These are not Facebook Events: Meta's API does not allow any app to create a Facebook Event. Posts reach the same feed, but there is no RSVP list and no entry on the Page's Events tab.\n3. <strong>Instagram site feed</strong> on the public site: recent media loaded via the Instagram Graph API (the old separate Instagram access token is no longer used).\n\n## Before you start: the accounts and assets you need\n\nYou will need all of the following. Gather them before touching the developer console. Open [Facebook](https://www.facebook.com/) while logged in as a Page admin ([log in](https://www.facebook.com/login/) if you are not).\n\n- A personal Facebook account that is an admin of the group or area's Facebook Page. Check [Your Pages](https://www.facebook.com/pages/?category=your_pages). Meta's note on [Page roles](https://www.facebook.com/help/187316341316703) is useful if you are not sure who has access.\n- The group or area's <strong>Facebook Page</strong> (a Page, not a personal profile and not a Facebook Group - Meta does not allow posting to Groups). Create one at [Create Page](https://www.facebook.com/pages/create/) only if you do not already have one. The [Professional dashboard](https://www.facebook.com/professional_dashboard) is the usual desktop home for a Page.\n- An <strong>Instagram professional account</strong> (Business or Creator, not personal), <strong>linked to that Facebook Page</strong>. Convert a personal account using [Set up a professional Instagram account](https://www.facebook.com/business/help/502981923235522) (that step is usually in the Instagram app). The Page link itself is [Page settings → Linked accounts](https://www.facebook.com/settings/?tab=linked_profiles). Meta's help for the same screen is [Connect a professional Instagram account to a Facebook Page](https://www.facebook.com/business/help/connect-instagram-to-page).\n- A [Meta Business Portfolio](https://business.facebook.com/) that owns, or has the Page and Instagram account added to it (recommended). Open [Business settings](https://business.facebook.com/latest/settings), then [Pages](https://business.facebook.com/latest/settings/pages/) and [Instagram accounts](https://business.facebook.com/latest/settings/instagram_account/). Meta's notes: [about business portfolios](https://www.facebook.com/business/help/486932075688253), [add a Facebook Page](https://www.facebook.com/business/help/720478807965744), [add an Instagram account](https://www.facebook.com/business/help/620548115562686).\n- A [Meta for Developers](https://developers.facebook.com/) account. Register at [developer registration](https://developers.facebook.com/async/registration) if you have not already (same Facebook login). Your apps are listed at [My Apps](https://developers.facebook.com/apps/).\n\n\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/2249a5a0-9a79-4ab5-a341-4f19b3decdac.png)\n\n_Page settings → Linked accounts: Instagram connected to the group's professional account._\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/2306b5f6-5153-4b48-8b6b-086c7f044cd9.png)\n\n*The same Instagram professional account in the Business Portfolio, owned by the group's Page.*\n\n## Who needs which access\n\nMeta's screens mix words like permissions, features, roles and Page roles. In practice:\n\n| Who | What they need it for |\n|---|---|\n| **Facebook Page admin** (or someone who can manage posts on the Page) | NGX Connect Facebook only lists Pages that person manages. Check [Your Pages](https://www.facebook.com/pages/?category=your_pages) and [Page roles](https://www.facebook.com/help/187316341316703) |\n| **Meta app admin / developer** | [Create the app](https://developers.facebook.com/apps/creation/), add Facebook Login and Instagram, grant the six permissions, set the OAuth redirect URI. Start from [My Apps](https://developers.facebook.com/apps/) |\n| **NGX site administrator** | Enter the App ID and App Secret, click Connect Facebook, switch on the publish toggles, and Save, on **System Settings → External → Social Media** |\n| **NGX content administrator** | Use **Share** on an album where **Allow Share To Social Media** is ticked |\n| **NGX walk administrator** | Use **Walks → Admin → Social Media Publishing**, and **Share on social media** on a walk or social event page |\n\nThe Instagram account must be a professional account **linked** to that Page ([Linked accounts](https://www.facebook.com/settings/?tab=linked_profiles)). Publishing and the site feed both use the Page token plus that linked Instagram account.\n\n## Route 1 - Get it working now (Standard Access, no App Review)\n\nThis is the path for **your** Page and Instagram account on **your** NGX site.\n\n### Step 1 - Create a Meta app\n\n1. Open [Create App](https://developers.facebook.com/apps/creation/) directly, or go to [My Apps](https://developers.facebook.com/apps/) and choose **Create App** (top right). If Meta asks you to register first, complete [developer registration](https://developers.facebook.com/async/registration). Meta's walkthrough is [Create an Instagram app](https://developers.facebook.com/docs/instagram-platform/create-an-instagram-app/) and [Create an app](https://developers.facebook.com/documentation/development/create-an-app).\n2. Pick a **Business** style app (or add [Facebook Login for Business](https://developers.facebook.com/docs/facebook-login/facebook-login-for-business/) if the wizard offers use cases). Use cases such as **Manage everything on your Page** and **Manage messaging & content on Instagram** are the ones that pull in publishing.\n3. Give it a name and attach it to the [Business Portfolio](https://business.facebook.com/) if prompted. You can create or pick a portfolio at [Business settings](https://business.facebook.com/latest/settings).\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/cbd77584-d150-4d05-90d0-715b7b7e64b6.png)\n\n*Meta for Developers → My Apps. Create App is top right. Each site has its own app; stay in Development while you test as the app admin.*\n\n### Step 2 - Add the products\n\nOpen the app from [My Apps](https://developers.facebook.com/apps/), then add:\n\n- **[Facebook Login](https://developers.facebook.com/docs/facebook-login/)** or **[Facebook Login for Business](https://developers.facebook.com/docs/facebook-login/facebook-login-for-business/)**\n- **Instagram** ([content publishing](https://developers.facebook.com/docs/instagram-platform/content-publishing/) as Meta labels it)\n\nMeta's current app dashboard groups these as **use cases** (for example **Manage messaging & content on Instagram** and **Manage everything on your Page**), with **Facebook Login for Business** in the left nav. Use cases are customised from the app **Dashboard** after you open the app. Meta's note on customising them is [Use case customisation](https://developers.facebook.com/documentation/development/app-customization).\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/60352b74-4b01-49a0-b1d8-1ae7ce85a67b.png)\n\n*App use cases: Instagram content and Page publishing, with Facebook Login for Business in the sidebar.*\n\n### Step 3 - Add permissions on the app\n\nOpen the app from [My Apps](https://developers.facebook.com/apps/). In the left nav, open **App Review → Permissions and features** (wording varies; newer apps put this under the use case instead). See Meta's [permissions reference](https://developers.facebook.com/docs/permissions/reference) and [access levels](https://developers.facebook.com/docs/graph-api/overview/access-levels/). Request **Standard Access** for:\n\n`pages_show_list`, `pages_read_engagement`, `pages_manage_posts`, `instagram_basic`, `instagram_content_publish`, `business_management`\n\nIf Connect Facebook fails with **Invalid Scopes: pages_manage_posts** (or another name), that permission is not yet available on this app - add it in the dashboard first, then try again. The login dialog only accepts scopes the app has been given.\n\nAlso under **Facebook Login for Business → Settings** in that same app (left nav after you open it from [My Apps](https://developers.facebook.com/apps/)), add a **Valid OAuth Redirect URI** that matches **this site**: the site’s origin plus the System Settings path, for example:\n\n`https://www.your-group-site.org.uk/admin/settings/system-settings`\n\nUse your real site hostname (whatever members use in the browser), not a developer machine address. NGX sends Facebook the current page origin plus that path, so the URI on the Meta app must match it exactly. Meta describes this screen in [Facebook Login for Business](https://developers.facebook.com/docs/facebook-login/facebook-login-for-business/) and [customise the Page use case](https://developers.facebook.com/documentation/pages-api/create-an-app).\n\nCopy the **App ID** and **App Secret** from **App settings → Basic** (left nav in the app dashboard). Meta's description of that screen is [Basic settings](https://developers.facebook.com/documentation/development/create-an-app/app-dashboard/basic-settings). The browser address looks like `https://developers.facebook.com/apps/` then your App ID then `/settings/basic/`.\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/bff58462-9688-45a7-aa8e-1db86fddecdd.png)\n\n*App settings → Basic: App ID and App Secret to paste into NGX, plus the site domain.*\n\n### Step 4 - Optional: system-user token (Advanced path)\n\nIf you prefer not to use Connect Facebook, you can generate a long-lived or non-expiring **system-user** Page token in [Business settings → System users](https://business.facebook.com/latest/settings/system_users/), then paste it under **Advanced** in NGX. Meta's notes are [System users](https://developers.facebook.com/docs/business-management-apis/system-users/). That is optional; Connect Facebook is the usual path.\n\n### Step 5 - Connect in NGX\n\nIn the NGX admin site, go to **System Settings → External → Social Media**:\n\n1. Enter the **Facebook App ID** and **Facebook App Secret** from Meta **App settings → Basic** (open the app from [My Apps](https://developers.facebook.com/apps/)).\n2. Click **Connect Facebook**, authorise with Facebook when the login dialog opens, and choose the Page if more than one is returned. Only Pages from [Your Pages](https://www.facebook.com/pages/?category=your_pages) for that Facebook user will appear.\n3. Tick **Publish walk albums to Facebook** and **Publish walk albums to Instagram** when they appear, use **Test Facebook** / **Test Instagram** if shown, then **Save**.\n\nAlternatively open **Advanced: paste an access token instead**, paste a Page or system-user token from [System users](https://business.facebook.com/latest/settings/system_users/), click **Find my Pages**, choose the Page, enable the toggles, and **Save**.\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/b5fb4d72-969a-4212-b1be-9eb36bce9264.png)\n\n*System Settings → External → Social Media: App ID, App Secret, Connect Facebook, album publish toggles and Test buttons.*\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/f7dcf290-9ef3-4c9f-b4b1-e219edb802fd.jpeg)\n\n*Advanced option: paste a Page or system-user access token and Find my Pages, if you prefer not to use Connect Facebook.*\n\nOnce the Page is connected, the same tab also has **Publish walks and social events**. That block is covered in step 7. Switch those toggles on only when you are ready to post walks and events, then **Save** again.\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/1b45b3d1-5556-4d60-aff1-85c99b2d8398.jpeg)\n\n*Publish walks and social events: Page posts rather than Facebook Events, optional Instagram, republish on change, post style and caption template.*\n\n### Step 6 - Share a test album\n\nShare does **not** appear merely because an album has images.\n\nOn the album's **Album Settings** tab:\n\n- Tick **Allow Share To Social Media** (off by default, so ordinary visitors never see Share). Content administrators then get the Share panel on that album.\n- **Show Links To Social Posts** (on by default) shows links to the Facebook and Instagram posts on the album after a successful publish.\n\nWalk photo albums created from a walk page turn **Allow Share To Social Media** on automatically when album publishing is already enabled for the site. Other albums leave it off until you tick it.\n\nUntil publishing is enabled in Social settings, the Share panel explains that setup is still needed. After Connect and Save, a content administrator picks images, writes a caption, and publishes. Check the post on the Page via the [Professional dashboard](https://www.facebook.com/professional_dashboard) or [Business Suite posts](https://business.facebook.com/latest/posts), and on [Instagram](https://www.instagram.com/).\n\nInstagram carousels need **2–10** images. The panel warns when a selected image sits outside Instagram's aspect-ratio range (roughly 4:5 to 1.91:1). On publish, NGX crops those images to the nearest supported shape; the album originals are not changed.\n\nThe same album cannot be posted twice to the same network. Instagram allows about **25** published posts in any rolling 24 hours.\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/5f6190ee-27f0-480b-ab5d-3a32465329e4.png)\n\n*Share this album on a walk photos page. Until publishing is enabled in Social settings, the panel explains that setup is still needed.*\n\n### Step 7 - Publish walks and social events\n\nThese go out as **Page posts**, not Facebook Events. Meta's API will not create a Facebook Event for any app.\n\nIn **System Settings → External → Social Media**, with the Page connected:\n\n1. Tick **Allow walks and social events to be published to Facebook** and, if you want Instagram too, **Allow walks and social events to be published to Instagram**.\n2. Optionally tick **Post again when a published event is rescheduled or cancelled**.\n3. Choose a **Post style**: **Link with preview card**, or **Photos with the link in the text**.\n4. Edit the **Post text** template if you like. Placeholders are `{title}`, `{description}`, `{date}`, `{time}`, `{startLocation}`, `{distance}`, `{grade}`, `{leader}` and `{url}`. A line whose placeholders are all empty is left out.\n5. **Save**.\n\nInstagram captions cannot contain clickable links, so the link back to the event appears as plain text. An event with no image cannot be posted to Instagram at all and is skipped; Facebook can still go out as a link with a preview card.\n\nWalk administrators then publish from **Walks → Admin → Social Media Publishing** (page title **Publish walks and social events to Facebook**). Choose a date range, select events, preview the exact wording and photos, and **Publish selected**. The same action is on a walk or social event page as **Share on social media**.\n\nAfter a publish, the posts appear on the Page feed ([Professional dashboard](https://www.facebook.com/professional_dashboard), [Business Suite posts](https://business.facebook.com/latest/posts)) and, if enabled, on [Instagram](https://www.instagram.com/).\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/53960439-040b-439c-89fe-5240adf48184.png)\n\n*Walks → Admin → Social Media Publishing. These are Page posts linking back to the event on the site, not Facebook Events.*\n\n## Instagram site feed\n\nThe public Instagram card on the website no longer uses a separate Instagram Basic Display access token. After Connect Facebook (with a linked Instagram professional account on [Linked accounts](https://www.facebook.com/settings/?tab=linked_profiles)), the feed reads via the Graph API using the same Page token. The **Instagram site feed** panel only controls the profile link, account name, and **Show Instagram Feed**.\n\n![](https://ngx-ramblers.org.uk/api/aws/s3/site-content/a574c032-08a4-49d2-b94d-2691bb0c8370.png)\n\n*Instagram site feed: profile link, account name and Show Instagram Feed. Media comes from the same Facebook Page connection as publishing.*\n\n## Web Url, so Meta can fetch images\n\nOn **System Settings → Area & Group**, set **Web Url** to the public site URL members use.\n\nMeta must fetch album images over HTTPS. When you publish from a machine whose address is localhost, NGX substitutes that Web Url so Facebook and Instagram can load the photos. On a live site (including staging), Meta fetches from the site you are actually on, so Web Url is not substituted there.\n\nIf images are rejected, check that Web Url is the public HTTPS address, and that the photos are reachable without logging in. Meta's [Sharing Debugger](https://developers.facebook.com/tools/debug/) shows what Facebook sees when it fetches a URL.\n\n## Permissions reference\n\n| Permission | What it does | Access level for your own Page | Needs App Review? |\n|---|---|---|---|\n| `pages_show_list` | Lists the Pages you manage | Standard | No |\n| `pages_read_engagement` | Reads Page details | Standard | No |\n| `pages_manage_posts` | Publishes posts to a Page | Standard | Only for Pages you do not administer |\n| `instagram_basic` | Reads the linked Instagram account and media | Standard | No |\n| `instagram_content_publish` | Publishes to Instagram | Standard | Only for accounts you do not administer |\n| `business_management` | Business assets / system users where used | Standard | No |\n\nThe permission names are listed in Meta's [permissions reference](https://developers.facebook.com/docs/permissions/reference). Standard versus Advanced is explained under [access levels](https://developers.facebook.com/docs/graph-api/overview/access-levels/).\n\n## Who does what\n\n**NGX does for you:**\n\n- Connect Facebook OAuth (or Advanced paste-token) and Page discovery.\n- Finds the Instagram account linked to that Page automatically.\n- Stores the connection, token health check, and Test buttons.\n- Publishes albums from the Share panel, and walks or social events as Page posts.\n- Crops Instagram images that sit outside the allowed aspect-ratio range.\n- Loads the public Instagram feed via the Graph API when the Page is connected.\n\n**You do once, on the Meta side (for this site):**\n\n- [Register as a developer](https://developers.facebook.com/async/registration) if needed, then [create the Meta app](https://developers.facebook.com/apps/creation/) from [My Apps](https://developers.facebook.com/apps/), add products and permissions, set the OAuth redirect URI.\n- Link the Instagram professional account to the Facebook Page via [Linked accounts](https://www.facebook.com/settings/?tab=linked_profiles). Convert first if it is still personal: [set up a professional Instagram account](https://www.facebook.com/business/help/502981923235522).\n- Add the Page and Instagram account to the [Business Portfolio](https://business.facebook.com/latest/settings) if you use one ([Pages](https://business.facebook.com/latest/settings/pages/), [Instagram accounts](https://business.facebook.com/latest/settings/instagram_account/)).\n- Provide privacy policy / data deletion URLs only if you later need [Advanced Access](https://developers.facebook.com/docs/graph-api/overview/access-levels/).\n- Record screencasts only for [App Review](https://developers.facebook.com/docs/instagram-platform/app-review/).\n\n**You do in NGX:**\n\n- Enter the App ID and Secret, Connect Facebook, switch on the publish toggles, and Save.\n- Tick **Allow Share To Social Media** on albums that should offer Share.\n- Publish albums as a content administrator, and walks or events as a walk administrator.\n\n**Meta controls:**\n\n- Issuing tokens and permissions, [Business Verification](https://www.facebook.com/business/help/2058515294284579), and App Review timing.\n\n## Common reasons connection or publish fails\n\n- **Invalid Scopes** (for example `pages_manage_posts`) - the permission has not been added for this Meta app yet. Open the app from [My Apps](https://developers.facebook.com/apps/) and add it under the use case or **App Review → Permissions and features**.\n- OAuth redirect URI on the Meta app does not match this site’s System Settings URL (origin + `/admin/settings/system-settings`). Set it under **Facebook Login for Business → Settings** after opening the app from [My Apps](https://developers.facebook.com/apps/).\n- The Instagram account is **personal**, not Business/Creator, or is not linked to the Page. Convert it ([set up a professional account](https://www.facebook.com/business/help/502981923235522)), then connect it on [Linked accounts](https://www.facebook.com/settings/?tab=linked_profiles).\n- Empty Page list after Connect Facebook - the Facebook user is not a Page admin for that Page. Check [Your Pages](https://www.facebook.com/pages/?category=your_pages) and [Page roles](https://www.facebook.com/help/187316341316703).\n- The app is in **Live** mode without Advanced Access for permissions you do not own assets for - stay in **Development** while testing as the app admin (the mode is shown on [My Apps](https://developers.facebook.com/apps/)).\n- App Secret missing or wrong in NGX settings. Copy it again from **App settings → Basic** after opening the app from [My Apps](https://developers.facebook.com/apps/).\n- Images rejected by Meta - Web Url empty or wrong on localhost, or the photos are not publicly fetchable. Check what Facebook sees with the [Sharing Debugger](https://developers.facebook.com/tools/debug/).\n- Share missing on an album - **Allow Share To Social Media** is off, or you are not a content administrator.\n- Instagram skipped for an event - that event has no image.\n\n_____\n\n## Useful Meta links\n\nThese open the Facebook or Meta screen you would otherwise have to find. You will need to be logged in.\n\n### Facebook Page\n\n- [Facebook](https://www.facebook.com/) · [Log in](https://www.facebook.com/login/)\n- [Your Pages](https://www.facebook.com/pages/?category=your_pages)\n- [Create a Page](https://www.facebook.com/pages/create/)\n- [Professional dashboard](https://www.facebook.com/professional_dashboard) (the usual desktop home for a Page, including recent posts)\n- [Page settings](https://www.facebook.com/settings)\n- [Linked accounts](https://www.facebook.com/settings/?tab=linked_profiles) (connect Instagram to the Page)\n- [Page roles](https://www.facebook.com/help/187316341316703)\n\n### Instagram\n\n- [Instagram](https://www.instagram.com/) · [Log in](https://www.instagram.com/accounts/login/)\n- [Set up a professional Instagram account](https://www.facebook.com/business/help/502981923235522) (usually in the Instagram app)\n- [Connect Instagram to a Facebook Page](https://www.facebook.com/business/help/connect-instagram-to-page)\n\n### Meta Business Suite\n\n- [Meta Business Suite](https://business.facebook.com/)\n- [Business settings](https://business.facebook.com/latest/settings)\n- [Pages](https://business.facebook.com/latest/settings/pages/)\n- [Instagram accounts](https://business.facebook.com/latest/settings/instagram_account/)\n- [People](https://business.facebook.com/latest/settings/people)\n- [System users](https://business.facebook.com/latest/settings/system_users/)\n- [Content / posts](https://business.facebook.com/latest/posts)\n- [About business portfolios](https://www.facebook.com/business/help/486932075688253) · [Add a Facebook Page](https://www.facebook.com/business/help/720478807965744) · [Add an Instagram account](https://www.facebook.com/business/help/620548115562686)\n\n### Meta for Developers\n\n- [Meta for Developers](https://developers.facebook.com/)\n- [Register as a developer](https://developers.facebook.com/async/registration)\n- [My Apps](https://developers.facebook.com/apps/)\n- [Create App](https://developers.facebook.com/apps/creation/)\n- [Sharing Debugger](https://developers.facebook.com/tools/debug/) (what Facebook sees when it fetches a URL)\n\nOnce the app exists, open it from [My Apps](https://developers.facebook.com/apps/). The left nav then has **App settings → Basic** (App ID and App Secret), **Facebook Login for Business → Settings** (Valid OAuth Redirect URI), and the use case or **App Review → Permissions and features**. The browser address looks like `https://developers.facebook.com/apps/` then your App ID, then `/settings/basic/` or `/fb-login/settings/`.\n\n### Meta documentation\n\n- [Access levels](https://developers.facebook.com/docs/graph-api/overview/access-levels/) (Standard versus Advanced)\n- [Permissions reference](https://developers.facebook.com/docs/permissions/reference)\n- [Create an app](https://developers.facebook.com/documentation/development/create-an-app) · [Create an Instagram app](https://developers.facebook.com/docs/instagram-platform/create-an-instagram-app/)\n- [Facebook Login](https://developers.facebook.com/docs/facebook-login/) · [Facebook Login for Business](https://developers.facebook.com/docs/facebook-login/facebook-login-for-business/)\n- [Instagram content publishing](https://developers.facebook.com/docs/instagram-platform/content-publishing/)\n- [App Review](https://developers.facebook.com/docs/instagram-platform/app-review/) · [Business Verification](https://www.facebook.com/business/help/2058515294284579)\n- [System users](https://developers.facebook.com/docs/business-management-apis/system-users/) · [Basic settings](https://developers.facebook.com/documentation/development/create-an-app/app-dashboard/basic-settings)","contentHtml":"<h1>10-Jul-2026 — Publishing to Facebook and Instagram: the Meta approval process</h1>\n<hr>\n<blockquote>\n<p>This page was updated on 25 August 2026 to match how publishing works now, including walks and social events.</p>\n</blockquote>\n<p>This guide explains what Meta needs before <strong>your</strong> group or area website can publish to <strong>your</strong> Facebook Page and Instagram account, and how that same connection powers the on-site Instagram feed. It is written to be followed step by step, because the process is genuinely confusing the first time and Meta&#39;s own documentation assumes you already know how their pieces fit together.</p>\n<p>Each NGX site manages its own social media. There is no shared central Meta app that all groups hang off: create (or use) a Meta app for <strong>this</strong> website, connect <strong>this</strong> site&#39;s Page, then publish from <strong>this</strong> site.</p>\n<p>NGX does the fiddly technical parts for you. The usual path is: enter your Meta App ID and App Secret, click <strong>Connect Facebook</strong>, authorise, pick your Page, and NGX fills in the Page token and linked Instagram account. You can still paste a system-user token under Advanced if you prefer.</p>\n<p>The Facebook and Meta screens below are linked so you can click through rather than hunting for them. You will need to be logged in as a Page admin.</p>\n<h2>Read this first - the single most important point</h2>\n<p>You do <strong>not</strong> need Meta&#39;s full App Review to start publishing to a Facebook Page and Instagram account that your group or area runs.</p>\n<p>Meta has two levels of access:</p>\n<ul>\n<li><strong><a href=\"https://developers.facebook.com/docs/graph-api/overview/access-levels/\">Standard Access</a></strong> - lets the app act on Pages and Instagram accounts that the people connected to it already administer. It needs <strong>no App Review</strong>. This is enough to get publishing working for your own Page and Instagram account.</li>\n<li><strong><a href=\"https://developers.facebook.com/docs/graph-api/overview/access-levels/\">Advanced Access</a></strong> - only needed when the app acts on Pages and accounts it does <strong>not</strong> administer. That is not the model for NGX sites: each site connects its own Page. That path also needs <a href=\"https://www.facebook.com/business/help/2058515294284579\">Business Verification</a> and <a href=\"https://developers.facebook.com/docs/instagram-platform/app-review/\">App Review</a>.</li>\n</ul>\n<p>Most of the pain people hit is from assuming the whole thing needs App Review from day one. It does not. Get it working with Standard Access first, prove it end to end, and only take on App Review if you truly need to post to Pages you do not administer.</p>\n<pre><code class=\"language-mermaid\">flowchart TD\n  A[&quot;Posting to a Facebook Page and Instagram account your group or area administers?&quot;] --&gt;|Yes| B[&quot;Standard Access&quot;]\n  B --&gt; C[&quot;No App Review needed&lt;br/&gt;Add the products and permissions, connect from NGX&quot;]\n  A --&gt;|&quot;Need to post to Pages you do NOT administer&quot;| D[&quot;Advanced Access&quot;]\n  D --&gt; E[&quot;Business Verification + App Review&lt;br/&gt;with a screencast per permission&quot;]\n  C --&gt; F[&quot;Connect Facebook in NGX, then publish albums or events&quot;]\n  E --&gt; F\n  style B fill:#E8F5EE,stroke:#9BC8AB,stroke-width:2px,rx:12,ry:12,color:#404143\n  style D fill:#FBEEDD,stroke:#E0B784,stroke-width:2px,rx:12,ry:12,color:#404143\n</code></pre>\n<h2>What this unlocks</h2>\n<p>Once connected, three things use the same Facebook Page token and linked Instagram account:</p>\n<ol>\n<li><strong>Share album to social media</strong> on an album: pick images, write a caption, publish a multi-photo Facebook post and an Instagram carousel. Share is only offered to <strong>content administrators</strong>, and only on albums where <strong>Allow Share To Social Media</strong> is ticked.</li>\n<li><strong>Walks and social events</strong> as <strong>Page posts</strong> linking back to the event on this site. These are not Facebook Events: Meta&#39;s API does not allow any app to create a Facebook Event. Posts reach the same feed, but there is no RSVP list and no entry on the Page&#39;s Events tab.</li>\n<li><strong>Instagram site feed</strong> on the public site: recent media loaded via the Instagram Graph API (the old separate Instagram access token is no longer used).</li>\n</ol>\n<h2>Before you start: the accounts and assets you need</h2>\n<p>You will need all of the following. Gather them before touching the developer console. Open <a href=\"https://www.facebook.com/\">Facebook</a> while logged in as a Page admin (<a href=\"https://www.facebook.com/login/\">log in</a> if you are not).</p>\n<ul>\n<li>A personal Facebook account that is an admin of the group or area&#39;s Facebook Page. Check <a href=\"https://www.facebook.com/pages/?category=your_pages\">Your Pages</a>. Meta&#39;s note on <a href=\"https://www.facebook.com/help/187316341316703\">Page roles</a> is useful if you are not sure who has access.</li>\n<li>The group or area&#39;s <strong>Facebook Page</strong> (a Page, not a personal profile and not a Facebook Group - Meta does not allow posting to Groups). Create one at <a href=\"https://www.facebook.com/pages/create/\">Create Page</a> only if you do not already have one. The <a href=\"https://www.facebook.com/professional_dashboard\">Professional dashboard</a> is the usual desktop home for a Page.</li>\n<li>An <strong>Instagram professional account</strong> (Business or Creator, not personal), <strong>linked to that Facebook Page</strong>. Convert a personal account using <a href=\"https://www.facebook.com/business/help/502981923235522\">Set up a professional Instagram account</a> (that step is usually in the Instagram app). The Page link itself is <a href=\"https://www.facebook.com/settings/?tab=linked_profiles\">Page settings → Linked accounts</a>. Meta&#39;s help for the same screen is <a href=\"https://www.facebook.com/business/help/connect-instagram-to-page\">Connect a professional Instagram account to a Facebook Page</a>.</li>\n<li>A <a href=\"https://business.facebook.com/\">Meta Business Portfolio</a> that owns, or has the Page and Instagram account added to it (recommended). Open <a href=\"https://business.facebook.com/latest/settings\">Business settings</a>, then <a href=\"https://business.facebook.com/latest/settings/pages/\">Pages</a> and <a href=\"https://business.facebook.com/latest/settings/instagram_account/\">Instagram accounts</a>. Meta&#39;s notes: <a href=\"https://www.facebook.com/business/help/486932075688253\">about business portfolios</a>, <a href=\"https://www.facebook.com/business/help/720478807965744\">add a Facebook Page</a>, <a href=\"https://www.facebook.com/business/help/620548115562686\">add an Instagram account</a>.</li>\n<li>A <a href=\"https://developers.facebook.com/\">Meta for Developers</a> account. Register at <a href=\"https://developers.facebook.com/async/registration\">developer registration</a> if you have not already (same Facebook login). Your apps are listed at <a href=\"https://developers.facebook.com/apps/\">My Apps</a>.</li>\n</ul>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/2249a5a0-9a79-4ab5-a341-4f19b3decdac.png\" alt=\"\"></p>\n<p><em>Page settings → Linked accounts: Instagram connected to the group&#39;s professional account.</em></p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/2306b5f6-5153-4b48-8b6b-086c7f044cd9.png\" alt=\"\"></p>\n<p><em>The same Instagram professional account in the Business Portfolio, owned by the group&#39;s Page.</em></p>\n<h2>Who needs which access</h2>\n<p>Meta&#39;s screens mix words like permissions, features, roles and Page roles. In practice:</p>\n<table>\n<thead>\n<tr>\n<th>Who</th>\n<th>What they need it for</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><strong>Facebook Page admin</strong> (or someone who can manage posts on the Page)</td>\n<td>NGX Connect Facebook only lists Pages that person manages. Check <a href=\"https://www.facebook.com/pages/?category=your_pages\">Your Pages</a> and <a href=\"https://www.facebook.com/help/187316341316703\">Page roles</a></td>\n</tr>\n<tr>\n<td><strong>Meta app admin / developer</strong></td>\n<td><a href=\"https://developers.facebook.com/apps/creation/\">Create the app</a>, add Facebook Login and Instagram, grant the six permissions, set the OAuth redirect URI. Start from <a href=\"https://developers.facebook.com/apps/\">My Apps</a></td>\n</tr>\n<tr>\n<td><strong>NGX site administrator</strong></td>\n<td>Enter the App ID and App Secret, click Connect Facebook, switch on the publish toggles, and Save, on <strong>System Settings → External → Social Media</strong></td>\n</tr>\n<tr>\n<td><strong>NGX content administrator</strong></td>\n<td>Use <strong>Share</strong> on an album where <strong>Allow Share To Social Media</strong> is ticked</td>\n</tr>\n<tr>\n<td><strong>NGX walk administrator</strong></td>\n<td>Use <strong>Walks → Admin → Social Media Publishing</strong>, and <strong>Share on social media</strong> on a walk or social event page</td>\n</tr>\n</tbody></table>\n<p>The Instagram account must be a professional account <strong>linked</strong> to that Page (<a href=\"https://www.facebook.com/settings/?tab=linked_profiles\">Linked accounts</a>). Publishing and the site feed both use the Page token plus that linked Instagram account.</p>\n<h2>Route 1 - Get it working now (Standard Access, no App Review)</h2>\n<p>This is the path for <strong>your</strong> Page and Instagram account on <strong>your</strong> NGX site.</p>\n<h3>Step 1 - Create a Meta app</h3>\n<ol>\n<li>Open <a href=\"https://developers.facebook.com/apps/creation/\">Create App</a> directly, or go to <a href=\"https://developers.facebook.com/apps/\">My Apps</a> and choose <strong>Create App</strong> (top right). If Meta asks you to register first, complete <a href=\"https://developers.facebook.com/async/registration\">developer registration</a>. Meta&#39;s walkthrough is <a href=\"https://developers.facebook.com/docs/instagram-platform/create-an-instagram-app/\">Create an Instagram app</a> and <a href=\"https://developers.facebook.com/documentation/development/create-an-app\">Create an app</a>.</li>\n<li>Pick a <strong>Business</strong> style app (or add <a href=\"https://developers.facebook.com/docs/facebook-login/facebook-login-for-business/\">Facebook Login for Business</a> if the wizard offers use cases). Use cases such as <strong>Manage everything on your Page</strong> and <strong>Manage messaging &amp; content on Instagram</strong> are the ones that pull in publishing.</li>\n<li>Give it a name and attach it to the <a href=\"https://business.facebook.com/\">Business Portfolio</a> if prompted. You can create or pick a portfolio at <a href=\"https://business.facebook.com/latest/settings\">Business settings</a>.</li>\n</ol>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/cbd77584-d150-4d05-90d0-715b7b7e64b6.png\" alt=\"\"></p>\n<p><em>Meta for Developers → My Apps. Create App is top right. Each site has its own app; stay in Development while you test as the app admin.</em></p>\n<h3>Step 2 - Add the products</h3>\n<p>Open the app from <a href=\"https://developers.facebook.com/apps/\">My Apps</a>, then add:</p>\n<ul>\n<li><strong><a href=\"https://developers.facebook.com/docs/facebook-login/\">Facebook Login</a></strong> or <strong><a href=\"https://developers.facebook.com/docs/facebook-login/facebook-login-for-business/\">Facebook Login for Business</a></strong></li>\n<li><strong>Instagram</strong> (<a href=\"https://developers.facebook.com/docs/instagram-platform/content-publishing/\">content publishing</a> as Meta labels it)</li>\n</ul>\n<p>Meta&#39;s current app dashboard groups these as <strong>use cases</strong> (for example <strong>Manage messaging &amp; content on Instagram</strong> and <strong>Manage everything on your Page</strong>), with <strong>Facebook Login for Business</strong> in the left nav. Use cases are customised from the app <strong>Dashboard</strong> after you open the app. Meta&#39;s note on customising them is <a href=\"https://developers.facebook.com/documentation/development/app-customization\">Use case customisation</a>.</p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/60352b74-4b01-49a0-b1d8-1ae7ce85a67b.png\" alt=\"\"></p>\n<p><em>App use cases: Instagram content and Page publishing, with Facebook Login for Business in the sidebar.</em></p>\n<h3>Step 3 - Add permissions on the app</h3>\n<p>Open the app from <a href=\"https://developers.facebook.com/apps/\">My Apps</a>. In the left nav, open <strong>App Review → Permissions and features</strong> (wording varies; newer apps put this under the use case instead). See Meta&#39;s <a href=\"https://developers.facebook.com/docs/permissions/reference\">permissions reference</a> and <a href=\"https://developers.facebook.com/docs/graph-api/overview/access-levels/\">access levels</a>. Request <strong>Standard Access</strong> for:</p>\n<p><code>pages_show_list</code>, <code>pages_read_engagement</code>, <code>pages_manage_posts</code>, <code>instagram_basic</code>, <code>instagram_content_publish</code>, <code>business_management</code></p>\n<p>If Connect Facebook fails with <strong>Invalid Scopes: pages_manage_posts</strong> (or another name), that permission is not yet available on this app - add it in the dashboard first, then try again. The login dialog only accepts scopes the app has been given.</p>\n<p>Also under <strong>Facebook Login for Business → Settings</strong> in that same app (left nav after you open it from <a href=\"https://developers.facebook.com/apps/\">My Apps</a>), add a <strong>Valid OAuth Redirect URI</strong> that matches <strong>this site</strong>: the site’s origin plus the System Settings path, for example:</p>\n<p><code>https://www.your-group-site.org.uk/admin/settings/system-settings</code></p>\n<p>Use your real site hostname (whatever members use in the browser), not a developer machine address. NGX sends Facebook the current page origin plus that path, so the URI on the Meta app must match it exactly. Meta describes this screen in <a href=\"https://developers.facebook.com/docs/facebook-login/facebook-login-for-business/\">Facebook Login for Business</a> and <a href=\"https://developers.facebook.com/documentation/pages-api/create-an-app\">customise the Page use case</a>.</p>\n<p>Copy the <strong>App ID</strong> and <strong>App Secret</strong> from <strong>App settings → Basic</strong> (left nav in the app dashboard). Meta&#39;s description of that screen is <a href=\"https://developers.facebook.com/documentation/development/create-an-app/app-dashboard/basic-settings\">Basic settings</a>. The browser address looks like <code>https://developers.facebook.com/apps/</code> then your App ID then <code>/settings/basic/</code>.</p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/bff58462-9688-45a7-aa8e-1db86fddecdd.png\" alt=\"\"></p>\n<p><em>App settings → Basic: App ID and App Secret to paste into NGX, plus the site domain.</em></p>\n<h3>Step 4 - Optional: system-user token (Advanced path)</h3>\n<p>If you prefer not to use Connect Facebook, you can generate a long-lived or non-expiring <strong>system-user</strong> Page token in <a href=\"https://business.facebook.com/latest/settings/system_users/\">Business settings → System users</a>, then paste it under <strong>Advanced</strong> in NGX. Meta&#39;s notes are <a href=\"https://developers.facebook.com/docs/business-management-apis/system-users/\">System users</a>. That is optional; Connect Facebook is the usual path.</p>\n<h3>Step 5 - Connect in NGX</h3>\n<p>In the NGX admin site, go to <strong>System Settings → External → Social Media</strong>:</p>\n<ol>\n<li>Enter the <strong>Facebook App ID</strong> and <strong>Facebook App Secret</strong> from Meta <strong>App settings → Basic</strong> (open the app from <a href=\"https://developers.facebook.com/apps/\">My Apps</a>).</li>\n<li>Click <strong>Connect Facebook</strong>, authorise with Facebook when the login dialog opens, and choose the Page if more than one is returned. Only Pages from <a href=\"https://www.facebook.com/pages/?category=your_pages\">Your Pages</a> for that Facebook user will appear.</li>\n<li>Tick <strong>Publish walk albums to Facebook</strong> and <strong>Publish walk albums to Instagram</strong> when they appear, use <strong>Test Facebook</strong> / <strong>Test Instagram</strong> if shown, then <strong>Save</strong>.</li>\n</ol>\n<p>Alternatively open <strong>Advanced: paste an access token instead</strong>, paste a Page or system-user token from <a href=\"https://business.facebook.com/latest/settings/system_users/\">System users</a>, click <strong>Find my Pages</strong>, choose the Page, enable the toggles, and <strong>Save</strong>.</p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/b5fb4d72-969a-4212-b1be-9eb36bce9264.png\" alt=\"\"></p>\n<p><em>System Settings → External → Social Media: App ID, App Secret, Connect Facebook, album publish toggles and Test buttons.</em></p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/f7dcf290-9ef3-4c9f-b4b1-e219edb802fd.jpeg\" alt=\"\"></p>\n<p><em>Advanced option: paste a Page or system-user access token and Find my Pages, if you prefer not to use Connect Facebook.</em></p>\n<p>Once the Page is connected, the same tab also has <strong>Publish walks and social events</strong>. That block is covered in step 7. Switch those toggles on only when you are ready to post walks and events, then <strong>Save</strong> again.</p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/1b45b3d1-5556-4d60-aff1-85c99b2d8398.jpeg\" alt=\"\"></p>\n<p><em>Publish walks and social events: Page posts rather than Facebook Events, optional Instagram, republish on change, post style and caption template.</em></p>\n<h3>Step 6 - Share a test album</h3>\n<p>Share does <strong>not</strong> appear merely because an album has images.</p>\n<p>On the album&#39;s <strong>Album Settings</strong> tab:</p>\n<ul>\n<li>Tick <strong>Allow Share To Social Media</strong> (off by default, so ordinary visitors never see Share). Content administrators then get the Share panel on that album.</li>\n<li><strong>Show Links To Social Posts</strong> (on by default) shows links to the Facebook and Instagram posts on the album after a successful publish.</li>\n</ul>\n<p>Walk photo albums created from a walk page turn <strong>Allow Share To Social Media</strong> on automatically when album publishing is already enabled for the site. Other albums leave it off until you tick it.</p>\n<p>Until publishing is enabled in Social settings, the Share panel explains that setup is still needed. After Connect and Save, a content administrator picks images, writes a caption, and publishes. Check the post on the Page via the <a href=\"https://www.facebook.com/professional_dashboard\">Professional dashboard</a> or <a href=\"https://business.facebook.com/latest/posts\">Business Suite posts</a>, and on <a href=\"https://www.instagram.com/\">Instagram</a>.</p>\n<p>Instagram carousels need <strong>2–10</strong> images. The panel warns when a selected image sits outside Instagram&#39;s aspect-ratio range (roughly 4:5 to 1.91:1). On publish, NGX crops those images to the nearest supported shape; the album originals are not changed.</p>\n<p>The same album cannot be posted twice to the same network. Instagram allows about <strong>25</strong> published posts in any rolling 24 hours.</p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/5f6190ee-27f0-480b-ab5d-3a32465329e4.png\" alt=\"\"></p>\n<p><em>Share this album on a walk photos page. Until publishing is enabled in Social settings, the panel explains that setup is still needed.</em></p>\n<h3>Step 7 - Publish walks and social events</h3>\n<p>These go out as <strong>Page posts</strong>, not Facebook Events. Meta&#39;s API will not create a Facebook Event for any app.</p>\n<p>In <strong>System Settings → External → Social Media</strong>, with the Page connected:</p>\n<ol>\n<li>Tick <strong>Allow walks and social events to be published to Facebook</strong> and, if you want Instagram too, <strong>Allow walks and social events to be published to Instagram</strong>.</li>\n<li>Optionally tick <strong>Post again when a published event is rescheduled or cancelled</strong>.</li>\n<li>Choose a <strong>Post style</strong>: <strong>Link with preview card</strong>, or <strong>Photos with the link in the text</strong>.</li>\n<li>Edit the <strong>Post text</strong> template if you like. Placeholders are <code>{title}</code>, <code>{description}</code>, <code>{date}</code>, <code>{time}</code>, <code>{startLocation}</code>, <code>{distance}</code>, <code>{grade}</code>, <code>{leader}</code> and <code>{url}</code>. A line whose placeholders are all empty is left out.</li>\n<li><strong>Save</strong>.</li>\n</ol>\n<p>Instagram captions cannot contain clickable links, so the link back to the event appears as plain text. An event with no image cannot be posted to Instagram at all and is skipped; Facebook can still go out as a link with a preview card.</p>\n<p>Walk administrators then publish from <strong>Walks → Admin → Social Media Publishing</strong> (page title <strong>Publish walks and social events to Facebook</strong>). Choose a date range, select events, preview the exact wording and photos, and <strong>Publish selected</strong>. The same action is on a walk or social event page as <strong>Share on social media</strong>.</p>\n<p>After a publish, the posts appear on the Page feed (<a href=\"https://www.facebook.com/professional_dashboard\">Professional dashboard</a>, <a href=\"https://business.facebook.com/latest/posts\">Business Suite posts</a>) and, if enabled, on <a href=\"https://www.instagram.com/\">Instagram</a>.</p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/53960439-040b-439c-89fe-5240adf48184.png\" alt=\"\"></p>\n<p><em>Walks → Admin → Social Media Publishing. These are Page posts linking back to the event on the site, not Facebook Events.</em></p>\n<h2>Instagram site feed</h2>\n<p>The public Instagram card on the website no longer uses a separate Instagram Basic Display access token. After Connect Facebook (with a linked Instagram professional account on <a href=\"https://www.facebook.com/settings/?tab=linked_profiles\">Linked accounts</a>), the feed reads via the Graph API using the same Page token. The <strong>Instagram site feed</strong> panel only controls the profile link, account name, and <strong>Show Instagram Feed</strong>.</p>\n<p><img src=\"https://ngx-ramblers.org.uk/api/aws/s3/site-content/a574c032-08a4-49d2-b94d-2691bb0c8370.png\" alt=\"\"></p>\n<p><em>Instagram site feed: profile link, account name and Show Instagram Feed. Media comes from the same Facebook Page connection as publishing.</em></p>\n<h2>Web Url, so Meta can fetch images</h2>\n<p>On <strong>System Settings → Area &amp; Group</strong>, set <strong>Web Url</strong> to the public site URL members use.</p>\n<p>Meta must fetch album images over HTTPS. When you publish from a machine whose address is localhost, NGX substitutes that Web Url so Facebook and Instagram can load the photos. On a live site (including staging), Meta fetches from the site you are actually on, so Web Url is not substituted there.</p>\n<p>If images are rejected, check that Web Url is the public HTTPS address, and that the photos are reachable without logging in. Meta&#39;s <a href=\"https://developers.facebook.com/tools/debug/\">Sharing Debugger</a> shows what Facebook sees when it fetches a URL.</p>\n<h2>Permissions reference</h2>\n<table>\n<thead>\n<tr>\n<th>Permission</th>\n<th>What it does</th>\n<th>Access level for your own Page</th>\n<th>Needs App Review?</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><code>pages_show_list</code></td>\n<td>Lists the Pages you manage</td>\n<td>Standard</td>\n<td>No</td>\n</tr>\n<tr>\n<td><code>pages_read_engagement</code></td>\n<td>Reads Page details</td>\n<td>Standard</td>\n<td>No</td>\n</tr>\n<tr>\n<td><code>pages_manage_posts</code></td>\n<td>Publishes posts to a Page</td>\n<td>Standard</td>\n<td>Only for Pages you do not administer</td>\n</tr>\n<tr>\n<td><code>instagram_basic</code></td>\n<td>Reads the linked Instagram account and media</td>\n<td>Standard</td>\n<td>No</td>\n</tr>\n<tr>\n<td><code>instagram_content_publish</code></td>\n<td>Publishes to Instagram</td>\n<td>Standard</td>\n<td>Only for accounts you do not administer</td>\n</tr>\n<tr>\n<td><code>business_management</code></td>\n<td>Business assets / system users where used</td>\n<td>Standard</td>\n<td>No</td>\n</tr>\n</tbody></table>\n<p>The permission names are listed in Meta&#39;s <a href=\"https://developers.facebook.com/docs/permissions/reference\">permissions reference</a>. Standard versus Advanced is explained under <a href=\"https://developers.facebook.com/docs/graph-api/overview/access-levels/\">access levels</a>.</p>\n<h2>Who does what</h2>\n<p><strong>NGX does for you:</strong></p>\n<ul>\n<li>Connect Facebook OAuth (or Advanced paste-token) and Page discovery.</li>\n<li>Finds the Instagram account linked to that Page automatically.</li>\n<li>Stores the connection, token health check, and Test buttons.</li>\n<li>Publishes albums from the Share panel, and walks or social events as Page posts.</li>\n<li>Crops Instagram images that sit outside the allowed aspect-ratio range.</li>\n<li>Loads the public Instagram feed via the Graph API when the Page is connected.</li>\n</ul>\n<p><strong>You do once, on the Meta side (for this site):</strong></p>\n<ul>\n<li><a href=\"https://developers.facebook.com/async/registration\">Register as a developer</a> if needed, then <a href=\"https://developers.facebook.com/apps/creation/\">create the Meta app</a> from <a href=\"https://developers.facebook.com/apps/\">My Apps</a>, add products and permissions, set the OAuth redirect URI.</li>\n<li>Link the Instagram professional account to the Facebook Page via <a href=\"https://www.facebook.com/settings/?tab=linked_profiles\">Linked accounts</a>. Convert first if it is still personal: <a href=\"https://www.facebook.com/business/help/502981923235522\">set up a professional Instagram account</a>.</li>\n<li>Add the Page and Instagram account to the <a href=\"https://business.facebook.com/latest/settings\">Business Portfolio</a> if you use one (<a href=\"https://business.facebook.com/latest/settings/pages/\">Pages</a>, <a href=\"https://business.facebook.com/latest/settings/instagram_account/\">Instagram accounts</a>).</li>\n<li>Provide privacy policy / data deletion URLs only if you later need <a href=\"https://developers.facebook.com/docs/graph-api/overview/access-levels/\">Advanced Access</a>.</li>\n<li>Record screencasts only for <a href=\"https://developers.facebook.com/docs/instagram-platform/app-review/\">App Review</a>.</li>\n</ul>\n<p><strong>You do in NGX:</strong></p>\n<ul>\n<li>Enter the App ID and Secret, Connect Facebook, switch on the publish toggles, and Save.</li>\n<li>Tick <strong>Allow Share To Social Media</strong> on albums that should offer Share.</li>\n<li>Publish albums as a content administrator, and walks or events as a walk administrator.</li>\n</ul>\n<p><strong>Meta controls:</strong></p>\n<ul>\n<li>Issuing tokens and permissions, <a href=\"https://www.facebook.com/business/help/2058515294284579\">Business Verification</a>, and App Review timing.</li>\n</ul>\n<h2>Common reasons connection or publish fails</h2>\n<ul>\n<li><strong>Invalid Scopes</strong> (for example <code>pages_manage_posts</code>) - the permission has not been added for this Meta app yet. Open the app from <a href=\"https://developers.facebook.com/apps/\">My Apps</a> and add it under the use case or <strong>App Review → Permissions and features</strong>.</li>\n<li>OAuth redirect URI on the Meta app does not match this site’s System Settings URL (origin + <code>/admin/settings/system-settings</code>). Set it under <strong>Facebook Login for Business → Settings</strong> after opening the app from <a href=\"https://developers.facebook.com/apps/\">My Apps</a>.</li>\n<li>The Instagram account is <strong>personal</strong>, not Business/Creator, or is not linked to the Page. Convert it (<a href=\"https://www.facebook.com/business/help/502981923235522\">set up a professional account</a>), then connect it on <a href=\"https://www.facebook.com/settings/?tab=linked_profiles\">Linked accounts</a>.</li>\n<li>Empty Page list after Connect Facebook - the Facebook user is not a Page admin for that Page. Check <a href=\"https://www.facebook.com/pages/?category=your_pages\">Your Pages</a> and <a href=\"https://www.facebook.com/help/187316341316703\">Page roles</a>.</li>\n<li>The app is in <strong>Live</strong> mode without Advanced Access for permissions you do not own assets for - stay in <strong>Development</strong> while testing as the app admin (the mode is shown on <a href=\"https://developers.facebook.com/apps/\">My Apps</a>).</li>\n<li>App Secret missing or wrong in NGX settings. Copy it again from <strong>App settings → Basic</strong> after opening the app from <a href=\"https://developers.facebook.com/apps/\">My Apps</a>.</li>\n<li>Images rejected by Meta - Web Url empty or wrong on localhost, or the photos are not publicly fetchable. Check what Facebook sees with the <a href=\"https://developers.facebook.com/tools/debug/\">Sharing Debugger</a>.</li>\n<li>Share missing on an album - <strong>Allow Share To Social Media</strong> is off, or you are not a content administrator.</li>\n<li>Instagram skipped for an event - that event has no image.</li>\n</ul>\n<hr>\n<h2>Useful Meta links</h2>\n<p>These open the Facebook or Meta screen you would otherwise have to find. You will need to be logged in.</p>\n<h3>Facebook Page</h3>\n<ul>\n<li><a href=\"https://www.facebook.com/\">Facebook</a> · <a href=\"https://www.facebook.com/login/\">Log in</a></li>\n<li><a href=\"https://www.facebook.com/pages/?category=your_pages\">Your Pages</a></li>\n<li><a href=\"https://www.facebook.com/pages/create/\">Create a Page</a></li>\n<li><a href=\"https://www.facebook.com/professional_dashboard\">Professional dashboard</a> (the usual desktop home for a Page, including recent posts)</li>\n<li><a href=\"https://www.facebook.com/settings\">Page settings</a></li>\n<li><a href=\"https://www.facebook.com/settings/?tab=linked_profiles\">Linked accounts</a> (connect Instagram to the Page)</li>\n<li><a href=\"https://www.facebook.com/help/187316341316703\">Page roles</a></li>\n</ul>\n<h3>Instagram</h3>\n<ul>\n<li><a href=\"https://www.instagram.com/\">Instagram</a> · <a href=\"https://www.instagram.com/accounts/login/\">Log in</a></li>\n<li><a href=\"https://www.facebook.com/business/help/502981923235522\">Set up a professional Instagram account</a> (usually in the Instagram app)</li>\n<li><a href=\"https://www.facebook.com/business/help/connect-instagram-to-page\">Connect Instagram to a Facebook Page</a></li>\n</ul>\n<h3>Meta Business Suite</h3>\n<ul>\n<li><a href=\"https://business.facebook.com/\">Meta Business Suite</a></li>\n<li><a href=\"https://business.facebook.com/latest/settings\">Business settings</a></li>\n<li><a href=\"https://business.facebook.com/latest/settings/pages/\">Pages</a></li>\n<li><a href=\"https://business.facebook.com/latest/settings/instagram_account/\">Instagram accounts</a></li>\n<li><a href=\"https://business.facebook.com/latest/settings/people\">People</a></li>\n<li><a href=\"https://business.facebook.com/latest/settings/system_users/\">System users</a></li>\n<li><a href=\"https://business.facebook.com/latest/posts\">Content / posts</a></li>\n<li><a href=\"https://www.facebook.com/business/help/486932075688253\">About business portfolios</a> · <a href=\"https://www.facebook.com/business/help/720478807965744\">Add a Facebook Page</a> · <a href=\"https://www.facebook.com/business/help/620548115562686\">Add an Instagram account</a></li>\n</ul>\n<h3>Meta for Developers</h3>\n<ul>\n<li><a href=\"https://developers.facebook.com/\">Meta for Developers</a></li>\n<li><a href=\"https://developers.facebook.com/async/registration\">Register as a developer</a></li>\n<li><a href=\"https://developers.facebook.com/apps/\">My Apps</a></li>\n<li><a href=\"https://developers.facebook.com/apps/creation/\">Create App</a></li>\n<li><a href=\"https://developers.facebook.com/tools/debug/\">Sharing Debugger</a> (what Facebook sees when it fetches a URL)</li>\n</ul>\n<p>Once the app exists, open it from <a href=\"https://developers.facebook.com/apps/\">My Apps</a>. The left nav then has <strong>App settings → Basic</strong> (App ID and App Secret), <strong>Facebook Login for Business → Settings</strong> (Valid OAuth Redirect URI), and the use case or <strong>App Review → Permissions and features</strong>. The browser address looks like <code>https://developers.facebook.com/apps/</code> then your App ID, then <code>/settings/basic/</code> or <code>/fb-login/settings/</code>.</p>\n<h3>Meta documentation</h3>\n<ul>\n<li><a href=\"https://developers.facebook.com/docs/graph-api/overview/access-levels/\">Access levels</a> (Standard versus Advanced)</li>\n<li><a href=\"https://developers.facebook.com/docs/permissions/reference\">Permissions reference</a></li>\n<li><a href=\"https://developers.facebook.com/documentation/development/create-an-app\">Create an app</a> · <a href=\"https://developers.facebook.com/docs/instagram-platform/create-an-instagram-app/\">Create an Instagram app</a></li>\n<li><a href=\"https://developers.facebook.com/docs/facebook-login/\">Facebook Login</a> · <a href=\"https://developers.facebook.com/docs/facebook-login/facebook-login-for-business/\">Facebook Login for Business</a></li>\n<li><a href=\"https://developers.facebook.com/docs/instagram-platform/content-publishing/\">Instagram content publishing</a></li>\n<li><a href=\"https://developers.facebook.com/docs/instagram-platform/app-review/\">App Review</a> · <a href=\"https://www.facebook.com/business/help/2058515294284579\">Business Verification</a></li>\n<li><a href=\"https://developers.facebook.com/docs/business-management-apis/system-users/\">System users</a> · <a href=\"https://developers.facebook.com/documentation/development/create-an-app/app-dashboard/basic-settings\">Basic settings</a></li>\n</ul>\n"}