将消息发布到页面的墙上作为此页面(不是管理员)

时间:2014-03-30 20:02:27

标签: facebook perl facebook-graph-api

我想发布到名为XY的页面,它应该直接显示在页面上,而不是来自其他用户(管理员)的发布。这是我从http://qscripts.blogspot.de/2011/02/post-to-your-own-facebook-account-from.html改编的代码,但是这个代码会发布到其他用户而不是主页面的区域。如果我用“我”替换页面ID号,它会发布到管理员页面并正确地发布到主区域。

#!/usr/bin/perl -I/opt/ActivePerl-5.16/site/lib/

# http://qscripts.blogspot.de/2011/02/post-to-your-own-facebook-account-from.html

use strict;
use warnings;
use open qw(:std :utf8);
use LWP::Simple;
use YAML;
use JSON;
use URI;
use utf8;

my $access_token = 'top secret';

graph_api('1484559088426611/feed', {
  access_token => $access_token,
  message      => 'Hello World! I’m posting Facebook updates from a script!',
  description  => 'You want to create a script to read messages and post status updates to your own '
                . 'Facebook account, but you find the official documentation confusing and '
                . 'you aren’t sure where to start. Search no more because here you’ll find '
                . 'the easiest way to do just this.',
  method       => 'post'
});


exit 0;

sub graph_api {
  my $uri = new URI('https://graph.facebook.com/' . shift);
  $uri->query_form(shift);
  my $resp = get("$uri");
  return defined $resp ? decode_json($resp) : undef;
}

1 个答案:

答案 0 :(得分:4)

在页面上发布时,如果您使用用户/管理员的访问令牌,帖子将以用户/管理员身份发布,但不会以页面本身的形式发布。

要在页面上作为网页发布,您应该使用page access token。要获取网页访问令牌,您需要获得权限manage_pages,然后才能拨打/{user-id}/accounts。这样您就可以获得页面的访问令牌。

现在好处是你可以拥有永不过期的页面访问令牌!我已经解释了这里的步骤:https://stackoverflow.com/a/18322405/1343690

希望它有所帮助。祝你好运!