We’ve been working on upgrading our stats report email that sends out every week detailing key statistics of how that client’s marketing is going. My plan is to have a very robust email detailing key metrics for all the major areas we focus on, including SEO, social media, blogging, email marketing, online ads and more.
To do that I’ve been patching together lots of APIs and database connects to consolidate all the information into this one email. One of those stats I want to display is the client’s Facebook Page views using the insights’ metric page_impressions from the Facebook Graph API.
To do that and allow my weekly email app to run based on a cron job (so it can automatically send out), I needed to get a never expiring access token for this. This took me quite a while to figure out due to the lack of detailed explanation on Facebook’s docs and other places I’d reviewed online. So here is how to get a never expiring Facebook Page Access Token.
Very first thing you need to do is make sure you are an admin/manager of the Facebook page you want a get a never expiring token for. Without that you’re not getting anywhere.
How to get a never expiring Facebook Page Access Token:
- Created a Facebook APP or used one I already created.
- Wrote down that Facebook APP’s Id and Application Secret.
- Got a Short-Lived Access Token from the Facebook Graph API Explorer. Facebook Graph API Explorer can be found here https://developers.facebook.com/tools/explorer
- First selected my app as the Application dropdown.
- Then clicked Get Access Token button.
- When popup opened, I clicked on Extended Permissions and checked boxes for manage_pages, read_insights and read_stream.
- Then click Get Access Token on popup window.
- This gave me an Access Token in the Access Token box. I copied that down. And tested it with the Facebook Access Token Debugger https://developers.facebook.com/tools/debug/accesstoken just to see if it was a token that would expire and it should expire in less than 1 hour. I didn’t need to test this but wanted to just to see what it would say.
- Then I took that Access Token, the APP’s Id and Application Secret and plugged those into this URL
- That URL gave me a Long-Lived Access Token. This expires in 60 days. I tested it to see that using the Facebook Access Token Debugger. Now I tested this Access Token with the Facebook Access Token Debugger and got back that it expires in 2 months (60 days).
- Now to get the never expiring Page Access Token, I went to Facebook Graph API Explorer and plugged in that Long-Lived Access Token we just created which expires in 2 months. I pasted this into the Access Token box. Then entered into the Get input box “MY_FACEBOOK_USER_ID/accounts” (without quotes). If you don’t know what your Facebook ID is you can get it here http://findmyfacebookid.com/.
- Then I clicked the Submit button on the Facebook Graph API Explorer page. Although when I did that I got back an error. So I put back into the Get input box what was their originally to see if I could get my id. I put this back in “me?fields=id,name” (no quotes).
- I got back an id number and my name in the results.
- I took that id and plug it into the GET input box “MY_FACEBOOK_USER_ID/accounts” (without quotes). Now I got back a list of pages I manage. Along with an Access Token for each page. This Access Token should be a never expiring token.
- To confirm these were never expiring tokens I tested them with the Facebook Access Token Debugger and got back they never expire.
Updated 2016 Version:
This only works for existing apps. So if you have not created your app yet or don’t have an app, then create one.
- Go to https://developers.facebook.com/tools/explorer
- Select your applications from the dropdown on the top right hand side
- Click “Get Access Token” button just below the application drodown on the right hand side
- In the dropdown select the page you want to get a access token for. If you don’t see your pages listed then you’ll need to make sure you’re set with the admin role for the page. Also you may have to click “Get Page Access Token” in the dropdown, after which then your pages will show in the dropdown next time you click the “Get Access Token” button.
- In the “Access token” input field click the blue exclamation point icon
- In the popup click the “Open in Access Token Tool” button on the bottom left of the popup
- This will open a new page with that app’s access token details. You’ll most likely see the token only lasts for an hour or so
- To extend that token and get one that doesn’t expire, click the “Extend Access Token” button
- That will give you a never expiring access token
Updated 2018 Version:
To get this to work first you have to follow all the step in the 2016 instructions above, click here. Then come back and follow the instructions below.
- After following 2016 version you should have a token that lasts for 60 days.
- Go back to Graph API Explorer, paste in the token in the “Access Token” field.
- Under that field paste in “me/subscribed_apps” (no quotes) and make sure it’s set to POST.
- Click Submit.
- Now back up in the “Access Token” field, click the blue circle exclamation point icon.
- Click button “Open in Access Token Tool”.
- At bottom right of page click the “Extend Access Token”. It should now make that token a never expiring token.