fbrell
>_
☰
Examples
Docs
☼
⚙
Status:
waiting
Disconnect
▼
Facebook Login
1 - Basic Login
2 - Checking and Tracking Login Status
3 - Requesting Additional Permissions
4 - Putting it all together
5 - Requesting Business Asset Access Tokens
▼
Graph API
1 - Reading
2 - Reading Edges
3 - Page Admin
▼
Sharing
1 - Social Plugins
2 - FB.ui Dialogs
▼
examples
exampl
▼
viewexamples
exampl
Graph API · 3 - Page Admin
▶ Run
<h1>Using the Graph API for Page Admin</h1> <p>If you are the admin of a Facebook Page, the Graph API can be used to control that Page, update it, and publish posts to it. The example below shows some simple code that can be used for this. Note, this example will use your live Facebook Pages, so only use it with any that you're comfortable publishing a test post to.</p> <hr /> <h2>Getting your Page Access Token</h2> <p>First, we'll need the <code>manage_pages</code> permission to see the pages you admin, so we'll insert a Login button which requests the correct permissions (click on this if you haven't already granted the permission):</p> <div class="fb-login-button" data-scope="manage_pages" data-max-rows="1" data-size="medium"></div> <hr /> <h2>Requesting the Pages</h2> <div id="pageBtn" class="btn btn-success clearfix">Click me to show the list of Pages you admin.</div> <ul id="pagesList" class="btn-group btn-group-vertical clearfix"></ul> <script> document.getElementById('pageBtn').onclick = function() { FB.api('/me/accounts?fields=name,access_token,link', function(response) { Log.info('API response', response); var list = document.getElementById('pagesList'); for (var i=0; i < response.data.length; i++) { var li = document.createElement('li'); li.innerHTML = response.data[i].name; li.dataset.token = response.data[i].access_token; li.dataset.link = response.data[i].link; li.className = 'btn btn-mini'; li.onclick = function() { document.getElementById('pageName').innerHTML = this.innerHTML; document.getElementById('pageToken').innerHTML = this.dataset.token; document.getElementById('pageLink').setAttribute('href', this.dataset.link); } list.appendChild(li); } }); return false; } </script> <hr /> <h2>Publishing to a Page</h2> <p>Click on a page in the list created above, and the name and Page access token will be shown here:</p> <span id="pageName" class="label label-success">No page selected</span> <span id="pageToken" class="label label-success">No page selected</span> <p>Once you've chosen a Page, you can click the button below to publish a "Hello, world!" post to that Page. Be careful, this will be visible to anyone who is a fan of that Page! This button simply triggers another FB.api() publishing call, but this time the access token of the Page is specified to replace the user access token we've used before.</p> <div id="publishBtn" class="btn btn-success">Publish me!</div> <script> document.getElementById('publishBtn').onclick = function() { var pageToken = document.getElementById('pageToken').innerHTML; FB.api('/me/feed', 'post', {message: 'Hello, world!', access_token: pageToken}, function(response) { Log.info('API response', response); document.getElementById('publishBtn').innerHTML = 'API response is ' + response.id; }); return false; } </script> <p>Now go look at <a id="pageLink" href="#">your page</a> and if the API request was successful, you'll see the Hello, World post in the feed.</p> <hr /> <h3>Related Guides</h3> <p>Read <a href="https://developers.facebook.com/docs/javascript/quickstart/#graphapi">our quickstart to using the JavaScript SDK for Graph API calls</a> for more info.</p>
// Output will appear here. Press Cmd+Enter to run.
Log
🗑
📋
Loading SDK...
GitHub
Settings
✕
App ID
Server
Version
Locale
en_US
af_ZA
ak_GH
am_ET
ar_AR
as_IN
ay_BO
az_AZ
be_BY
bg_BG
bm_ML
bn_IN
bp_IN
br_FR
bs_BA
bv_DE
ca_ES
cb_IQ
ck_US
co_FR
cs_CZ
cx_PH
cy_GB
da_DK
de_DE
eh_IN
el_GR
em_ZM
en_GB
en_IN
en_OP
en_PI
en_UD
en_XA
eo_EO
es_CL
es_CO
es_ES
es_LA
es_MX
es_VE
et_EE
eu_ES
fa_IR
fb_AA
fb_AC
fb_AR
fb_HA
fb_HX
fb_LL
fb_LS
fb_LT
fb_RL
fb_ZH
fbt_AC
ff_NG
fi_FI
fn_IT
fo_FO
fr_CA
fr_FR
fv_NG
fy_NL
ga_IE
gl_ES
gn_PY
gu_IN
gx_GR
ha_NG
he_IL
hi_FB
hi_IN
hr_HR
ht_HT
hu_HU
hy_AM
id_ID
ig_NG
ik_US
is_IS
it_IT
iu_CA
ja_JP
ja_KS
jv_ID
ka_GE
kk_KZ
km_KH
kn_IN
ko_KR
ks_IN
ku_TR
ky_KG
la_VA
lg_UG
li_NL
ln_CD
lo_LA
lr_IT
lt_LT
lv_LV
mg_MG
mi_NZ
mk_MK
ml_IN
mn_MN
mos_BF
mr_IN
ms_MY
mt_MT
my_MM
nb_NO
nd_ZW
ne_NP
nh_MX
nl_BE
nl_NL
nn_NO
nr_ZA
ns_ZA
ny_MW
om_ET
or_IN
pa_IN
pcm_NG
pl_PL
ps_AF
pt_BR
pt_PT
qb_DE
qc_GT
qe_US
qk_DZ
qr_GR
qs_DE
qt_US
qu_PE
qv_IT
qz_MM
rm_CH
rn_BI
ro_RO
ru_RU
rw_RW
sa_IN
sc_IT
se_NO
si_LK
sk_SK
sl_SI
sn_ZW
so_SO
sq_AL
sr_RS
ss_SZ
st_ZA
su_ID
sv_SE
sw_KE
sy_SY
sz_PL
ta_IN
te_IN
tg_TJ
th_TH
ti_ET
tk_TM
tl_PH
tl_ST
tn_BW
tq_AR
tpi_PG
tr_TR
ts_ZA
tt_RU
tz_MA
uk_UA
ur_PK
uz_UZ
ve_ZA
vi_VN
wo_SN
xh_ZA
yi_DE
yo_NG
zh_CN
zh_HK
zh_TW
zu_ZA
zz_TR
Log Level
debug
info
warn
error
View Mode
Website
Canvas
Page Tab
Auto Init SDK
Auto Status Ping
Frictionless Requests