在受管理的Facebook页面上发布订阅源


Posting a Feed on a Administered Facebook Page

我正试图在Facebook上管理的一个页面上发帖,我使用了这段代码。

$fb_key['key'] = 'fb_access_token';
$access = Model_const::read_key($fb_key);
$f = new facebook'fb($cfg);
$f->setAccessToken($access['value']);
$p = 'User is not logged in';
if($f->getUser())
{
   $page_arg['access_token'] = $f->getAccessToken();
   $page_arg['fields']        = 'access_token';
   $page_info = $f->api("/$fb_id",'get',$page_arg);
   $fb  = array();
   $fb['link'] = $uri;
   $fb['message'] = Input::post('content');
   $fb['access_token'] = $page_info['access_token'];
   $p = $f->api("$fb_id/feed",'POST',$fb);
}

我在这里关注了这个线程,发现$page_info部分似乎没有被FBapi识别。阅读文档并没有帮助,尽管我可以使用我的个人帐户发帖。我想把它放在我的脸书非人类页面上。

我希望有人能提供如何通过PHP SDK做到这一点。

实际上,您必须从管理员用户帐户中检索页面访问令牌这是文档的链接https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens

我认为您缺少权限:manage_pages

使用您的登录代码添加此权限。

  • 如果您正在使用getLoginUrl(),请参阅此处的

  • 如果使用直接身份验证对话框url,则添加如下:

    $dialog_url="http://www.facebook.com/dialog/oauth?"."client_id="$app_id."&redirect_uri="。urlencode($post_login_url)."&scope=manage_pages";

另一件事,如果你想扩展永远不会过期的页面访问令牌,我在本线程中解释了同样的内容:从服务器获得发布到Facebook粉丝页面的持久令牌的步骤是什么

其余的似乎是正确的。祝你好运