[{"data":1,"prerenderedAt":75},["ShallowReactive",2],{"help-article-connect-a-facebook-page":3},{"data":4},{"title":5,"excerpt":6,"content":7,"help_category":8,"seo":11},"Connect a Facebook Page","Connect Facebook to m18t by generating your own Meta access token and Page ID, then wiring them into the single Meta (Facebook & IG) connection.","\u003Cp>\u003Cstrong>What you&#39;ll learn\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Why connecting Meta means generating your own access token rather than clicking a &quot;Log in with Facebook&quot; button.\u003C\u002Fli>\n\u003Cli>How to get a long-lived Meta access token and find your Facebook Page ID.\u003C\u002Fli>\n\u003Cli>How to wire it all into m18t&#39;s single \u003Cstrong>Meta (Facebook &amp; IG)\u003C\u002Fstrong> connection.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Ch2>The concept\u003C\u002Fh2>\n\u003Cp>m18t publishes to Facebook (and Instagram) through Meta&#39;s Graph API using \u003Cem>your\u003C\u002Fem> credentials — it&#39;s \u003Ca href=\"\u002Fhelp\u002Fbyok-why-we-do-this\">BYOK\u003C\u002Fa>. There&#39;s no consumer &quot;Log in with Facebook&quot; shortcut. You create a Meta app, generate an access token, find your Page&#39;s numeric ID, and hand those to m18t.\u003C\u002Fp>\n\u003Cp>One more thing to know up front: in m18t, Facebook and Instagram are \u003Cstrong>one\u003C\u002Fstrong> connection — the provider is \u003Cstrong>Meta (Facebook &amp; IG)\u003C\u002Fstrong>. You set up the token once, then add a Facebook Page outlet and (optionally) an Instagram outlet on the same connection. This article covers Facebook; \u003Ca href=\"\u002Fhelp\u002Fconnect-an-instagram-account\">Connect an Instagram Account\u003C\u002Fa> covers the IG side.\u003C\u002Fp>\n\u003Cp>This is the most involved setup in m18t. It&#39;s tedious, but it&#39;s once per brand. Meta also changes their developer tools regularly, so the provider-side steps below are described by intent.\u003C\u002Fp>\n\u003Ch2>Step 1 — Create a Meta app and get a token\u003C\u002Fh2>\n\u003Cp>You need admin access to the target Facebook Page.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Go to \u003Ca href=\"https:\u002F\u002Fdevelopers.facebook.com\u002F\">Meta for Developers\u003C\u002Fa> and register as a developer if you haven&#39;t.\u003C\u002Fli>\n\u003Cli>Create a new \u003Cstrong>app\u003C\u002Fstrong> of the business type, and associate it with your Business account.\u003C\u002Fli>\n\u003Cli>Generate an \u003Cstrong>access token\u003C\u002Fstrong> with permissions to read and publish to your Page. For a token that doesn&#39;t expire on you, Meta&#39;s recommended path today is a \u003Cstrong>System User access token\u003C\u002Fstrong> from Business Settings; a short-lived user token must be extended to a long-lived one or your publishing will break when it expires.\u003C\u002Fli>\n\u003Cli>Grant the right scopes when you generate the token. \u003Cstrong>Publishing and reading metrics need different permissions\u003C\u002Fstrong>, so include all of them — otherwise a token can publish perfectly yet silently fail to sync engagement:\u003Cul>\n\u003Cli>\u003Cstrong>To publish:\u003C\u002Fstrong> \u003Ccode>pages_manage_posts\u003C\u002Fcode>, \u003Ccode>pages_show_list\u003C\u002Fcode>, \u003Ccode>pages_read_engagement\u003C\u002Fcode> (plus \u003Ccode>business_management\u003C\u002Fcode> for a System User token).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>To sync metrics\u003C\u002Fstrong> (likes, comments, reactions back onto the post): \u003Ccode>pages_read_user_content\u003C\u002Fcode>. Meta treats reactions as user content, so \u003Ccode>pages_read_engagement\u003C\u002Fcode> alone is \u003Cstrong>not\u003C\u002Fstrong> enough — without \u003Ccode>pages_read_user_content\u003C\u002Fcode> the metrics call fails with error \u003Ccode>(#10)\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>For Instagram\u003C\u002Fstrong> (if you&#39;ll publish there too): \u003Ccode>instagram_basic\u003C\u002Fcode>, \u003Ccode>instagram_content_publish\u003C\u002Fcode>, plus \u003Ccode>instagram_manage_comments\u003C\u002Fcode> for comment metrics — see the \u003Ca href=\"\u002Fhelp\u002Fconnect-an-instagram-account\">Instagram article\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Copy the token. Treat it like a password.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2>Step 2 — Find your Facebook Page ID\u003C\u002Fh2>\n\u003Cp>m18t targets a Page by its numeric ID, not its name.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open Meta&#39;s \u003Cstrong>Graph API Explorer\u003C\u002Fstrong> with your app and token selected.\u003C\u002Fli>\n\u003Cli>Query \u003Ccode>me\u002Faccounts\u003C\u002Fcode> (or \u003Ccode>me?fields=id,name\u003C\u002Fcode>) to list the Pages your token can manage.\u003C\u002Fli>\n\u003Cli>Copy the \u003Ccode>id\u003C\u002Fcode> of the Page you want — a numeric string. That&#39;s your Facebook Page ID.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2>Step 3 — Wire it into m18t\u003C\u002Fh2>\n\u003Col>\n\u003Cli>Go to \u003Cstrong>Business Settings → Connections\u003C\u002Fstrong> (\u003Ccode>\u002Fstudio\u002Fbusiness\u002Fconnections\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>Add Connection\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pick a brand\u003C\u002Fstrong> — connections are per brand. Choose the brand whose Page this is.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Pick a provider\u003C\u002Fstrong> — under Social, choose \u003Cstrong>Meta (Facebook &amp; IG)\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>On the setup step, set the \u003Cstrong>Environment\u003C\u002Fstrong>, confirm the \u003Cstrong>Label\u003C\u002Fstrong>, and leave the \u003Cstrong>Base URL\u003C\u002Fstrong> at its Graph API default.\u003C\u002Fli>\n\u003Cli>On the \u003Cstrong>Authentication\u003C\u002Fstrong> step, choose \u003Cstrong>+ Add new vault key\u003C\u002Fstrong>. The wizard suggests \u003Ccode>META_ACCESS_TOKEN\u003C\u002Fcode>; paste your token. It&#39;s encrypted in the \u003Ca href=\"\u002Fhelp\u002Fthe-secret-vault\">Vault\u003C\u002Fa> before storage.\u003C\u002Fli>\n\u003Cli>On the \u003Cstrong>Outlets\u003C\u002Fstrong> step, fill the \u003Cstrong>Facebook Page name\u003C\u002Fstrong> (a free-text label) and the \u003Cstrong>Facebook Page ID\u003C\u002Fstrong> (the numeric string from Step 2). Leave the Instagram fields blank for now if you&#39;re only doing Facebook — outlets without IDs aren&#39;t created.\u003C\u002Fli>\n\u003Cli>Finish with \u003Cstrong>Create connection\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch2>Step 4 — Confirm it works\u003C\u002Fh2>\n\u003Cp>On the \u003Cstrong>Connections\u003C\u002Fstrong> tab, find the Meta card and run its test action. A success result means m18t can reach the Graph API with your token.\u003C\u002Fp>\n\u003Ch2>FAQ\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>My token stopped working after a few hours \u002F a day.\u003C\u002Fstrong>\nYou used a short-lived token. Generate a long-lived token or a System User token instead, then rotate the value on the \u003Ca href=\"\u002Fhelp\u002Fthe-secret-vault\">Vault\u003C\u002Fa> tab.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Publishing fails with a permissions error.\u003C\u002Fstrong>\nThe token is missing a Page-publishing permission, or the token&#39;s user isn&#39;t an admin of the Page. Regenerate the token with the right scopes and re-test.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Can I publish to Instagram with this same connection?\u003C\u002Fstrong>\nYes — that&#39;s the design. Add the Instagram outlet on this same Meta connection. Follow \u003Ca href=\"\u002Fhelp\u002Fconnect-an-instagram-account\">Connect an Instagram Account\u003C\u002Fa> for the prerequisites and the IG Business Account ID.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What about LinkedIn, TikTok, X, or Threads?\u003C\u002Fstrong>\nLinkedIn \u003Cstrong>is\u003C\u002Fstrong> a native channel — see \u003Ca href=\"\u002Fhelp\u002Fconnect-linkedin\">Connect LinkedIn\u003C\u002Fa>. TikTok, X, and Threads aren&#39;t natively wired yet; they&#39;re on the roadmap and can only be reached via an external automation bridge for now.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Where do I see why a publish failed?\u003C\u002Fstrong>\nEach external push is recorded in the sync log; check there for the raw Graph API response.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>What&#39;s next\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Add the IG side: \u003Ca href=\"\u002Fhelp\u002Fconnect-an-instagram-account\">Connect an Instagram Account\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Post to LinkedIn too: \u003Ca href=\"\u002Fhelp\u002Fconnect-linkedin\">Connect LinkedIn\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>See what actually gets posted: \u003Ca href=\"\u002Fhelp\u002Fpublishing-to-facebook-and-instagram\">Publishing to Facebook &amp; Instagram\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>The credential model behind this: \u003Ca href=\"\u002Fhelp\u002Fthe-secret-vault\">The Secret Vault\u003C\u002Fa> · \u003Ca href=\"\u002Fhelp\u002Fper-brand-integrations\">Per-Brand Integrations\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n",{"slug":9,"title":10},"connections-and-keys","Connections & API Keys",{"meta_title":12,"meta_description":6,"keywords":13,"canonical_url":14,"og_title":5,"og_description":15,"og_image":16,"robots":17,"json_ld":18},"Connect a Facebook Page | m18t Help","connect facebook page, meta access token, facebook page id, graph api, system user token, meta connection, m18t social publishing","https:\u002F\u002Fm18t.com\u002Fhelp\u002Fconnect-a-facebook-page","Generate a long-lived Meta token, find your Page ID, and wire them into m18t's Meta connection.","https:\u002F\u002Fm18t.com\u002Fog-default.png","index, follow",{"@context":19,"@graph":20},"https:\u002F\u002Fschema.org",[21,34,59],{"@type":22,"headline":5,"description":6,"articleSection":10,"inLanguage":23,"datePublished":24,"dateModified":24,"image":16,"author":25,"publisher":29,"mainEntityOfPage":32},"Article","en","2026-06-25",{"@type":26,"name":27,"url":28},"Organization","m18t","https:\u002F\u002Fm18t.com",{"@type":26,"name":27,"url":28,"logo":30},{"@type":31,"url":16},"ImageObject",{"@type":33,"@id":14},"WebPage",{"@type":35,"mainEntity":36},"FAQPage",[37,43,47,51,55],{"@type":38,"name":39,"acceptedAnswer":40},"Question","My token stopped working after a few hours \u002F a day.",{"@type":41,"text":42},"Answer","You used a short-lived token. Generate a long-lived token or a System User token instead, then rotate the value on the Vault tab.",{"@type":38,"name":44,"acceptedAnswer":45},"Publishing fails with a permissions error.",{"@type":41,"text":46},"The token is missing a Page-publishing permission, or the token's user isn't an admin of the Page. Regenerate the token with the right scopes and re-test.",{"@type":38,"name":48,"acceptedAnswer":49},"Can I publish to Instagram with this same connection?",{"@type":41,"text":50},"Yes — that's the design. Add the Instagram outlet on this same Meta connection. Follow Connect an Instagram Account for the prerequisites and the IG Business Account ID.",{"@type":38,"name":52,"acceptedAnswer":53},"What about LinkedIn, TikTok, X, or Threads?",{"@type":41,"text":54},"LinkedIn is a native channel in m18t — see Connect LinkedIn. TikTok, X, and Threads are not natively wired yet; they are on the roadmap and can only be reached via an external automation bridge for now.",{"@type":38,"name":56,"acceptedAnswer":57},"Where do I see why a publish failed?",{"@type":41,"text":58},"Each external push is recorded in the sync log; check there for the raw Graph API response.",{"@type":60,"itemListElement":61},"BreadcrumbList",[62,66,70,73],{"@type":63,"position":64,"name":65,"item":28},"ListItem",1,"Home",{"@type":63,"position":67,"name":68,"item":69},2,"Help","https:\u002F\u002Fm18t.com\u002Fhelp",{"@type":63,"position":71,"name":10,"item":72},3,"https:\u002F\u002Fm18t.com\u002Fhelp\u002Fcategories\u002Fconnections-and-keys",{"@type":63,"position":74,"name":5,"item":14},4,1786312169109]