npm install -g facebook-refresh-token
{
"server": {
"protocol": "http",
"host": "dummy.com",
"port": 3000
},
"app": {
"key": "",
"secret": "",
"scope": []
},
"browser": {
"cookie": ""
}
}
- Create OAuth application on developers.facebook.com (in case you don't have one already)
- Set the app's Site URL to
http://dummy.com:3000
(or whatever else you want) - Add
127.0.0.1 dummy.com
to your hosts file
- Make sure you are logged in with your primary Facebook account that you are using regularly (this module relies on your browser
cookie
) - Create
config.json
file and copy/paste the above configuration data structure in it - Configure the server
protocol
,host
andport
should match your app's Site URLkey
App IDsecret
App Secretscope
specify any scopes required by your app (optional)
- Start the server
facebook-refresh-token --config config.json --connect
- Navigate to
http://dummy.com:3000
in your browser - Open up the Developer Tools and select the Network tab, make sure
Preserve log
is checked - Navigate to
http://dummy.com:3000/connect/facebook
and authenticate as usual - Take a look at the authorization request in the Network tab and copy the request's
cookie
header value to the above configuration
- Add
127.0.0.1 dummy.com
to your hosts file - Deploy the
config.json
file to your server
- Every time you want to update your access token execute:
facebook-refresh-token --config config.json --refresh
The refreshed access token is logged out to the console. This makes it easy to pipe this script's output to another one.
For example on Linux servers you may want to configure the cron daemon to refresh your access token at 12:00AM on the first day of every 3 months:
0 0 1 */3 * facebook-refresh-token --config config.json --refresh > access_token
Keep in mind that if you ever log out manually or due to prolonged inactivity of your Facebook account your cookie will be lost.
- In this case execute the steps outlined in the Connect section on your workstation.
- Update your server's
config.json
file with your newcookie
value.