--- title: "How to Generate an Instagram Access Token" url: "https://divipeople.com/docs/generate-instagram-access-token.md" canonical: "https://divipeople.com/docs/generate-instagram-access-token/" published: "2025-03-24" modified: "2026-05-18" author: "Fahim Reza" tags: - "Divi Instagram Feed" - "Divi Social Plus" --- # How to Generate an Instagram Access Token ***Last verified against Meta's Instagram Platform documentation in 2026, after the Instagram Basic Display API end-of-life (December 4, 2024).*** Divi Instagram Feed connects to Instagram using an **access token** that you generate in **your own** Meta developer app and paste into the plugin. When you click **Connect Account** in **Divi Instagram Feed → Accounts**, you'll be asked for two things: 1. **Access Token** — generated in your own Meta app using the steps below 2. **Account Type** — **Creator (Instagram Login)** or **Business (Facebook Page)** Pick the track that matches your account. ## Why you generate your own token (no third-party app) **[Divi Instagram Feed](https://divipeople.com/divi-instagram-feed/)** is deliberately designed so that **you create your own private Meta app and generate your own token**. Your Instagram account is **never connected to DiviPeople or any shared third-party application**, and your data never passes through our servers. What this means for you: - **Privacy & ownership** — the app is yours, the token is yours, the connection is strictly between *your* WordPress site and *your* Instagram account. - **No vendor lock-in** — you can revoke or regenerate the token in your own Meta dashboard at any time, independent of the plugin. - **No Meta App Review required** — because the app accesses **only your own account** (you are the app owner / a person with a role on the app), it can stay in **Development mode**. Meta App Review and Advanced Access are only needed when an app serves *other* people's accounts — which this model intentionally avoids. The trade-off is a one-time setup: you'll spend ~10 minutes creating the app and generating the token. This guide covers every step in depth. > **Before you start: Personal Instagram accounts are not supported. Your account must be a Professional account — *Creator* or *Business*. To switch: Instagram app → Settings → Account type and tools → Switch to professional account. Creator is enough and does not require a Facebook Page.** ## Which track should I use? | Your situation | Use this track | Account Type to select | | --- | --- | --- | | Creator account, **no** Facebook Page | **Track A — Creator / Instagram Login** | **Creator (Instagram Login)** | | Business account, **no** Facebook Page | **Track A — Creator / Instagram Login** | **Creator (Instagram Login)** | | Business account **linked to a Facebook Page** | **Track B — Business** | **Business (Facebook Page)** | **Track A is the simplest** and works for most people (Creator *and* Business accounts that aren't tied to a Facebook Page). Only use Track B if your Instagram is a Business account managed through a Facebook Page. ## Track A — Creator account token This uses Meta's *Instagram API with Instagram Login*. No Facebook Page needed. ### Step 1 — Create a Meta developer account 1. Go to **[https://developers.facebook.com/](https://developers.facebook.com/)** and click **Get Started** (top-right). Log in with any Facebook account. 2. Complete the short developer registration (verify email/phone if prompted) and accept the policies. You do **not** need a Facebook Page or Business verification for this track. ### Step 2 — Create a Meta app Go to **[https://developers.facebook.com/apps](https://developers.facebook.com/apps)** → click **Create App**. Meta walks you through a 5-step wizard (shown in the left sidebar). Here is exactly what to do at each step: #### **App details** - **App name:** anything for your own reference, e.g. `My Site Instagram Feed`. - **App contact email:** your email address. - Click **Next**. ![Ig access token](https://divipeople.com/wp-content/uploads/2025/03/ig-access-token-1-1-1024x507.png) #### **Use cases** - From the list, select **"Manage messaging & content on Instagram"** (icon: Instagram; description mentions the *Instagram API*). - The name sounds messaging-focused, but this is **the Instagram API use case** — it's what provisions *API setup with Instagram login* and the `instagram_business_basic` permission needed to display your feed. You will not use the messaging/publishing features, and they require no action. - Do **not** select Facebook Login, Marketing API, Threads, oEmbed, or Pages use cases. - *(Alternative: "Create an app without a use case" also works, but then you must manually add the Instagram product later via the Dashboard. The use case above is the cleaner path.)* - If a follow-up **app type** prompt appears, choose **Business**. - Click **Next**. ![Ig access token](https://divipeople.com/wp-content/uploads/2025/03/ig-access-token-2-1024x685.png) #### **Business** - This asks you to connect a **Meta Business portfolio**. - Choose **"I don't want to connect a business portfolio yet"** (or skip). Connecting a *verified* business is only required to **publish** an app for other people to use — this self-token model only ever accesses **your own** account, so it stays in Development mode and never needs publishing or business verification. - Click **Next**. ![Ig access token](https://divipeople.com/wp-content/uploads/2025/03/ig-access-token-3-1024x474.png) #### **Requirements** - This is an informational screen listing what would be required to take the app live (business verification, App Review, etc.). **You don't need to act on any of it** for personal/own-account use. - Click **Next**. ![Ig access token](https://divipeople.com/wp-content/uploads/2025/03/ig-access-token-4-1024x443.png) #### **Overview** - Review the summary, then click **Create app** (re-enter your Facebook password if prompted). - You land on the app **Dashboard**. ![Ig access token](https://divipeople.com/wp-content/uploads/2025/03/ig-access-token-5-1024x801.png) > Leave the app in **Development** mode. Because it will only ever access *your own* Instagram account, it never needs to be switched to Live or submitted for Meta App Review. ### Step 3 — Open "API setup with Instagram login" Because you selected the Instagram use case in Step 2, **the Instagram product is already added** — you do **not** need to "Add product" manually. 1. In the left menu open **Instagram → API setup with Instagram login**. 2. You'll see three numbered sections; you'll use **1. Generate access tokens**. > If you instead chose "Create an app without a use case," add it now: Dashboard → **Add products to your app** → **Instagram → Set up**, then return here. ### Step 4 — Add the Instagram account as an Instagram Tester The Instagram account **whose feed you want to display** must be added to your app with the **Instagram Tester** role before you can generate a token for it. 1. In the left sidebar, open **App roles → Roles**. 2. Click the **Add People** button (top-right). 3. In the *Add people to your app* dialog, scroll to **Additional roles for this app** and select **Instagram Tester**. *(Meta's text here still says "required by the Instagram Basic Display API" — that label is outdated; it's the same tester-role mechanism the current Instagram API uses. Ignore the wording.)* 4. In the search box at the bottom, type the **Instagram username whose feed you want to show** (e.g. `solstice.ai`), select it, and click **Add**. 5. The account now shows under **Instagram Testers** with status *Pending*. ![App roles](https://divipeople.com/wp-content/uploads/2025/03/app-roles-1024x442.png) **Then accept the invite from the Instagram side (required):** 1. From that Instagram account  **→** **Website permissions → Apps and websites → Tester invitations**, then **Accept**. 2. **Accept** the invitation from your app. The status in the app's Roles tab changes to *Active*. ![Ig invitations](https://divipeople.com/wp-content/uploads/2025/03/ig-invitations-1-1-1024x617.png) **Requirements (token generation will silently fail otherwise):** - **Professional account only.** Personal accounts can't be added — Instagram will prompt conversion (Instagram app → *Settings → Account type and tools → Switch to professional account → Creator*). Creator does **not** require a Facebook Page. - **The account must be public.** Tokens are only issued for **public** profiles (Instagram app → *Settings → Account privacy*). ### Step 5 — Generate the access token Once the account shows as an **Active** Instagram Tester, go back to **Instagram → API setup with Instagram login → 1. Generate access tokens** and click **Add account** (log in with that Instagram account if prompted — it will now succeed). Then: 1. Next to your connected username, click **Generate token**. 2. Confirm in the popup. A long token string is displayed. 3. Click the copy icon and **save it somewhere safe immediately** — Meta shows the full token only once. ![Login with instagram account](https://divipeople.com/wp-content/uploads/2025/03/login-with-instagram-account--798x1024.png) ![Optin permisions](https://divipeople.com/wp-content/uploads/2025/03/optin-permisions-803x1024.png) This is a **long-lived token (valid ~60 days)**. Divi Instagram Feed refreshes it automatically before it expires, so you normally generate it only once. > **Optional — manual short→long-lived exchange.** If a tool gave you a short-lived token (valid 1 hour), find your **App secret** under **App settings → Basic** (click *Show*), then call: > > ``` > GET https://graph.instagram.com/access_token > ?grant_type=ig_exchange_token > &client_secret=YOUR_INSTAGRAM_APP_SECRET > &access_token=YOUR_SHORT_LIVED_TOKEN > ``` > > Open that URL in a browser; the JSON response's `access_token` is the long-lived token (60 days, refreshable after 24 hours). ### Step 6 — Add the token to the Divi Instagram Feed dashboard ![Divi instagram feed dashboard](https://divipeople.com/wp-content/uploads/2025/03/divi-instagram-feed-dashboard-1024x489.png) 1. In WordPress admin, open **Divi Instagram Feed → Accounts**. 2. Read the notice confirming a Professional account is required. 3. Click the **Connect Account** button (top-right of the Accounts card). 4. In the dialog that opens: - **Access Token:** paste the long token string from Step 5 (no spaces, no quotes). - **Account Type:** select **Creator (Instagram Login)**. 5. Click **Connect** / **Submit**. 6. The plugin validates the token against Instagram and, on success, shows your account in the **Connected Accounts** list with its username and profile picture. 7. Edit any page → add the **Instagram Feed** module → in **Source**, choose this account. To rotate or revoke later: click **Remove** on the account here, regenerate or delete the token in your Meta App Dashboard, then reconnect. ## Track B — Business account token (with a Facebook Page) Use this only if your Instagram is a **Business** account connected to a **Facebook Page**. This uses the *Instagram Graph API* via Facebook Login. ### Step 1 — Confirm the connection 1. The Instagram account must be set to **Business**. 2. It must be linked to a **Facebook Page** (Instagram app → *Settings → Account type and tools → Sharing to other apps* / link from the Facebook Page's settings). ### Step 2 — Create a Meta app 1. Go to **[https://developers.facebook.com/apps](https://developers.facebook.com/apps)** → **Create App**. 2. Choose app type **Business**, name it, and create it. ### Step 3 — Get a User token via Graph API Explorer 1. Open **[https://developers.facebook.com/tools/explorer](https://developers.facebook.com/tools/explorer)**. 2. Top-right, select your app under **Meta App**. 3. Click **Generate Access Token** and log in with the Facebook account that manages the Page. 4. When prompted for permissions, grant: - `instagram_basic` - `pages_show_list` - `pages_read_engagement` 5. Approve the Page that's linked to your Instagram Business account. 6. Copy the generated **User access token**. ### Step 4 — Convert to a long-lived token Short tokens from the Explorer expire in ~1 hour. Exchange for a ~60-day token: ``` GET https://graph.facebook.com/v25.0/oauth/access_token ?grant_type=fb_exchange_token &client_id=YOUR_APP_ID &client_secret=YOUR_APP_SECRET &fb_exchange_token=YOUR_SHORT_LIVED_TOKEN ``` (You can also use the **Access Token Tool** at `developers.facebook.com/tools/accesstoken` to get the long-lived token without building the URL.) Copy the resulting long-lived `access_token`. ### Step 5 — Add the token to the Divi Instagram Feed dashboard 1. WordPress admin → **Divi Instagram Feed → Accounts**. 2. Click **Connect Account** (top-right of the Accounts card). 3. In the dialog: - **Access Token:** paste the **long-lived** token from Step 4. - **Account Type:** select **Business (Facebook Page)**. 4. Click **Connect** / **Submit**. The plugin calls the Instagram Graph API, resolves the Instagram Business account linked to your Facebook Page automatically, and adds it to the **Connected Accounts** list. 5. Add the **Instagram Feed** module to a page and pick this account under **Source**. To rotate or revoke later: **Remove** the account here, then regenerate/invalidate the token in your Meta app, and reconnect. ## After connecting - **Token refresh** is automatic (~every 30 days via WordPress cron) for the Creator/Personal track, well within the 60-day window. On very low-traffic sites, ensure WP-Cron runs (or wire a real system cron to `wp-cron.php`). - **Multiple accounts** can be connected; each module picks one. - **To rotate or revoke:** click **Remove** on the account in the plugin, delete/regenerate the token in the Meta App Dashboard, and reconnect. ## Troubleshooting token issues | Problem | Cause / fix | | --- | --- | | "Connect" fails immediately | Account is still **personal**. Switch to Professional and regenerate. | | "Add account" won't add it / no token can be generated | The Instagram account is **private**. Tokens generate only for **public** accounts — set the profile to public and retry. | | Can't log in during "Add account" | Use the app's **App roles → Roles** tab to add the account with the **Instagram tester** role, then accept the tester invite from the Instagram account. | | Token works then dies after ~1 hour | You pasted a **short-lived** token — do the long-lived exchange (Step 4 of either track). | | Token dies after ~60 days | Not refreshed (WP-Cron not firing). Reconnect and set up a real system cron. | | Business track: no Page listed in Explorer | Instagram isn't linked to a Facebook Page, or the account isn't Business. Fix the link first. | | "Invalid platform app" / permission errors | Wrong **Account Type** selected for the token, or missing scopes. Match the track to the type. | ### Sources - [Instagram Platform — Get started (Instagram API with Instagram Login) — Meta](https://developers.facebook.com/docs/instagram-platform/instagram-api-with-instagram-login/get-started/) - [Access Token reference — Meta](https://developers.facebook.com/docs/instagram-platform/reference/access_token/) - [Instagram Platform Changelog — Meta](https://developers.facebook.com/docs/instagram-platform/changelog/)