Guide · Messenger · Model A

Create your own Meta App and connect Messenger

Complete guide to obtaining your credentials · ~30 minutes · No prior experience

🧩 5 parts⚠️ 6 traps solved🖥️ Desktop browser

What you'll achieve: create your application in Meta for Developers, link your Facebook Page, and get the 3 values that any messaging platform needs to connect your Messenger:App Secret, Page Access Token andPage ID.

What you need before you start:

  • A personal Facebook account.
  • A Facebook Page for your business, where your account is afull-access administrator.
  • A desktop browser (not mobile) withpopups allowed for facebook.com.
Guide index

Part 1 · Create your App (one time only)

1.1 Go to the developer portal

Go to https://developers.facebook.com and sign in with your Facebook account (the one that manages your Page).

The developers.facebook.com home with the My Apps menu highlighted.
Developer portal: go in through My Apps, top right.

If it's your first time, Meta will ask you to register as a developer: accept the terms and verify your account (email or phone). It's free and takes 2 minutes.

1.2 Create the App

  1. Top right: My AppsCreate App button.
  2. When it asks for the type or use case, choose thebusiness / Business option (or the "Engage with customers on Messenger" use case if the wizard offers it directly).
  3. Give it a recognizable name (e.g. "MyBusiness Engine"), your contact email, and if you have a Business portfolio, select it.
  4. Create App → Meta may ask for your password to confirm.
The Create App screen with the Business type selected.
Create App: choose the Business type and give it a recognizable name.

The app is born in "In development" mode

You'll see "Unpublished". It's normal and enough to connect: in this mode everything works for you and the accounts you add to the app. "Live" mode is only needed to serve the general public (see Part 5).

1.3 Add Messenger

In your app panel, find the"Engage with customers on Messenger" use case (or theMessenger product in the side menu) and clickSet up. This enables the "Messenger API Settings" section.

The app panel showing the Messenger use case and its Set up button.
App dashboard: click Set up on the Messenger use case.

Part 2 · Link your Page (here's trap #1)

2.1 Connect the Page

In Messenger API Settings, the"2. Generate access tokens" section, you'll see "No FB pages yet" with aConnect button. Click it.

The '2. Generate access tokens' section showing 'No FB pages yet' with the Connect button.
The '2. Generate access tokens' section: no pages yet, click Connect.

2.2 Authorize in the popup

In the Facebook window:

  1. Select your Page (only the business one you're connecting).
  2. On the permissions screen, leave them ALL enabled — especially the Page messages one. If you uncheck any, your token comes out incomplete and the bot won't be able to read or reply.
  3. Confirm (Done).

When it works, the section will show your Page listed with agreen check ✓.

The Generate access tokens section shows your Page connected with a green check.
Page linked correctly: it appears with its green check.

Part 3 · Get your 3 credentials

Golden rule before continuing

These values are secret (the first two). Store them in a password manager or a secure local file. Never paste them in chats, emails, screenshots or posts. Anyone with your token can read and send messages as your Page.

3.1 Page Access Token

In Messenger API Settings → "2. Generate access tokens", in your Page's row, click Generate. The"Token Generation" modal opens:

  1. Read the notice ("this token is shown ONCE only") and check the"I understand" box — without checking it you can't copy.
  2. The token appears partially masked (EAAVS•••…). Use theCopy button in the modal — never a manual selection (it avoids truncation).
  3. Click Done. The row will now show the"Token generated" label next to the Generate button — that label is your confirmation that it exists. (The Generate button stays: it's for regenerating if you lose it.)
The 'Token Generation' modal with the masked token and the Copy button.
Token Generation modal: Meta already masks the value; use its Copy button.

3.2 App Secret

  1. Your app's side menu → App settings → Basic.
  2. Next to "App secret" (shown as dots ••••), click Show.
  3. Meta will ask for your Facebook password (that's normal, it's a security confirmation).
  4. Copy the value and store it in your secure place.
App settings → Basic with the App secret field and the Show button; the secret never visible.
App settings → Basic: the App Secret lives here, not on the Messenger screen.

The App Secret is in App settings → Basic, NOT on the Messenger screen. It's the most common mix-up: looking for it where you generated the token.

3.3 Page ID

Your Page ID is not secret. You see it in the same row where you generated the token (next to the Page name), or on your Facebook Page → Settings → at the bottom, "Page ID".

Now you have the 3 values

App Secret · Page Access Token · Page ID. Hand them to your platform through the secure channel it specifies (usually an encrypted form or a command in your own terminal — never by chat or email).

Part 4 · The webhook (if your platform asks for it)

Some platforms, after receiving your credentials, give you back two values to "close the loop": a Callback URL and aVerify Token. You paste them like this:

  1. In your app: Messenger → Webhooks (or the "Webhook Subscription" section next to your page).
  2. Paste the Callback URL and the Verify Tokenexactly as the platform gave them to you → Verify and Save.
  3. Subscribe to the right fields: the Add Subscriptions button next to your page.
The Webhooks screen in its initial state, with the page still unsubscribed.
The 'before' state: the Webhooks screen with the page still unsubscribed.

What the complete, healthy loop looks like

Your final checklist — the four indicators in green:

  • The "1. Configure webhooks" section has a green check and the Callback URL saved (treat that URL as semi-secret: don't publish it).
  • In the fields list, messages and messaging_postbacksshow the toggle at "Subscribed".
  • Your page's row says "messages and messaging_postbacks" under Webhook Subscription and "Token generated" in the Token column.
  • With those four indicators green, the Meta side is done.
The '1. Configure webhooks' section with a green check and the Callback URL saved.
Indicator 1: 'Configure webhooks' green, with the Callback URL saved.
The webhook fields list with messages and messaging_postbacks at 'Subscribed'.
Indicator 2: the messages and messaging_postbacks fields at 'Subscribed'.
The page's row showing 'messages and messaging_postbacks' and 'Token generated'.
Indicator 3: the page's row shows the 2 fields and 'Token generated'.

Without the messages field subscribed, your customers' messageswill never arrive at the platform even if everything else is fine. It's the step most people forget.

Part 5 · Test and go public

Test in development mode (today)

Your app in "In development" mode already works — but only with accounts that have a role in the app. To test:

  1. App roles → Roles → Add People → add a second Facebook account as a Tester (a partner, a family member, your alternate account). That person must accept the invitation (it arrives at facebook.com → notifications).
  2. From that account, send a message to your Page (you can use the direct linkm.me/YOUR_PAGE_ID).
  3. If your platform replies: your connection is alive. 🎉
App roles → Roles with an account added as Tester.
App roles → Roles: add a second account as Tester to test.

Go public (when you're ready)

So that anyone (without a role in your app) can message your bot:

  1. Complete the Privacy Policy URL and Terms of Service URLin App settings → Basic (they must be real pages of yours, not placeholders).
  2. Request the pages_messaging permission via App Review(Meta asks for a short video showing how your bot works).
  3. Verify your business in Business Manager if Meta requests it.
  4. Switch the app to Live (the "Publish" / mode toggle).

This process takes from days to a few weeks depending on Meta. In the meantime, your bot already works with the test accounts.

The finish: your bot replying

When the whole loop is green, the definitive test is a real message. We sent to the page: "What plans do you have and how much do they cost?" — and in seconds the bot's reply arrived with the full catalog, the prices and a follow-up question. That's the standard of success: not a valid token or a green check, buta real conversation working.

The real conversation: the user's message and the bot's reply with the catalog and prices.
The final figure: a real conversation — the bot replies with the catalog and prices.

1-minute summary

StepWhereResult
Create Business appdevelopers.facebook.com → Create AppYour app "In development"
Add MessengerDashboard → Messenger use caseMessenger API Settings
Connect Page"2. Generate access tokens" → ConnectPage with ✓ (watch: popups + Full access)
Generate tokenGenerate button next to your pagePage Access Token (verify it: Type=Page)
App SecretApp settings → Basic → ShowApp Secret
Page IDNext to your page / Page settingsPage ID (not secret)
WebhookMessenger → WebhooksCallback + Verify + messages field
TestTester with role + m.me/PAGE_IDBot replying 🎉

Verified: Jul 2026, Meta interface v25.0. Meta's interface changes frequently: if a screen doesn't match exactly, look for the same labels in the equivalent section.


Addendum to Guide A · 2-step connection from the panel

Replaces the manual webhook with the panel flow · ~5 minutes · Breaks the "chicken and egg" problem

Who this is for: you already followed Guide A (or the Instagram / WhatsApp Cloud one) and you have your credentials. Instead of configuring the webhook by hand (PART 4 of Guide A), your panel does it in 2 steps. This addendum replaces that part.

The problem it solves: Meta requires a webhook that already answers to let you subscribe to messages; but you don't have the link yet until you connect. It's a circle. The panel breaks it: first it gives you the link (without asking for credentials), and then you connect.

STEP 1 · Generate your Callback URL + Verify Token (no credentials yet)

  1. Go to your panel → Connect channel (or the /connect page).
  2. Choose what you're going to connect: Messenger (Page), Instagram, or WhatsApp.
  3. Click "Generate Callback URL + Verify Token".
  4. The panel shows you two values. Copy them:
    • Callback URL (a long link, unique to you).
    • Verify Token (a random string).

You don't need the App Secret or the token yet. This step only creates your webhook link, ready to paste in Meta.

STEP 2 · Paste the webhook in Meta and subscribe messages

  1. In your Meta App → the Webhooks section of the product you're connecting (Messenger / Instagram / WhatsApp).
  2. Paste the Callback URL and the Verify Token exactly as the panel gave them to you (no spaces).
  3. Verify and Save → Meta checks your link (it now answers ✓).
  4. In Manage / Edit subscriptions, check only the messages field.

STEP 3 · Connect with your 3 credentials

Go back to the panel → same Connect channel screen → theConnect section:

  1. App Secret — exactly 32 hexadecimal characters.
  2. Access Token — your Page / Instagram / WhatsApp token.
  3. Object ID — Page ID, Instagram ID or Phone Number ID depending on the channel.
  4. Click Connect.

The panel validates your credentials against Meta and leaves the channel pending.

STEP 4 · The first message activates the channel

Send a test message to the channel (a DM, a message to your Page or to your Cloud number). The first valid message activates the channel: it goes from pendingto connected, and the assistant replies.

30-SECOND SUMMARY

StepActionWhere
1Generate Callback URL + Verify Token (no credentials)Panel → Connect
2Paste in Meta + subscribe messagesMeta App → Webhooks
3Connect with App Secret + Token + IDPanel → Connect
4Send 1 test messageThe channel → activates (pending→connected)

Golden rule

Generate the webhook once only, paste it in Meta, and don't regenerate. If something fails, regenerate and paste again the new pair.

Addendum based on the panel's real 2-step connection flow. It replaces the manual webhook configuration of Guide A; the rest of Guide A (creating the app, linking the Page, getting credentials) stays the same.