How to Get a Never-Expiring Facebook Page Access Token in 2025 (Step-by-Step)
By Software Mirrors — at Sun Nov 23 2025
Facebook Page access tokens are essential for automating posts, reading insights, replying to messages, or integrating with tools like Zapier, ManyChat, or custom scripts. The good news? You can create a never-expiring Page access token (also called a permanent or lifetime token) completely free and legally using Meta’s official method.
Why You Need a Never-Expiring Page Token
Short-lived user tokens expire in 1–2 hours
Long-lived user tokens last only ~60 days
Page tokens generated from a long-lived user token never expire (as long as the user keeps admin rights and doesn’t revoke the app)
Requirements
A Facebook account with admin access to the Page
A Meta for Developers account
A Facebook App (takes 2 minutes to create)
Step 1: Create a Facebook App (If You Don’t Have One)
Click Create App → Choose Business or Other → Next
Enter a display name (e.g., “My Page Token App”) → Create App
You’ll be redirected to the app dashboard – note your App ID and App Secret (Settings → Basic → Show Secret)

Step 2: Get a Short-Lived User Token with Correct Permissions
Open Graph API Explorer: https://developers.facebook.com/tools/explorer/
Select your new app from the top dropdown
Click Generate Access Token
Add these permissions (scopes):
pages_show_list
pages_read_engagement
pages_manage_posts
pages_manage_metadata (for messaging)
pages_read_user_content (optional)
Click Generate Access Token → Approve permissions
Copy the token (expires in ~1–2 hours)

Step 3: Exchange for a Long-Lived User Token (60 Days)
Go to https://developers.facebook.com/tools/debug/accesstoken/
Paste your short-lived token → Debug
Click Extend Access Token at the bottom
Enter your Facebook password if asked
Copy the new long-lived token (valid ~60 days)

Step 4: Generate the Never-Expiring Page Token
Back in Graph API Explorer, paste your long-lived user token
In the query box, type: me/accounts
Click Submit
You’ll see a list of your Pages with a separate access_token for each
Copy the access_token next to your desired Page → This token never expires

Step 5: Verify Your Permanent Token
Go to Access Token Debugger: https://developers.facebook.com/tools/debug/accesstoken/
Paste the Page token
You should see:
Type: Page
Expires: Never
Valid: True

Common Mistakes & Fixes
"Error: Invalid token" → Regenerate with correct permissions
Page not showing → Make sure you’re admin and the Page is published
Token expires anyway → You used the user token, not the Page token
Example Usage
async function postToFacebook(desc, link, env) {
const res = await fetchhttps://graph.facebook.com/${env.FB_PAGE_ID}/feed, {
method: "POST",
body: new URLSearchParams({
message: desc,
link: link,
access_token: env.FB_PAGE_TOKEN
})
});
}You now have a 100% permanent Facebook Page access token that will work forever (until permissions are revoked).
