So about a month back it looks like facebook changed their graph API to prevent posting links to pages using the method we had always used which was simply a post to /
After spending an hour or two bashing my head against the wall I discovered that you had to first access a list of all your pages with your user access token, then from that you would figure out the page’s special access token, and only then could you post.
So the resulting (somewhat messy) perl code is like:
my $FB_GRAPH_BASE = 'https://graph.facebook.com/v2.2'; my $m = WWW::Mechanize->new; my $res = $m->get( "$FB_GRAPH_BASE/me/accounts?access_token=$token" ); my $d = decode_json( $res->decoded_content )->{data}; my $page_token = (grep { $_->{id} eq $PAGE_ID } @$d)[0]->{access_token}; $res = $m->post( "$FB_GRAPH_BASE/$PAGE_ID/feed", { access_token => $page_token, message => $msg, link => $url, });