在Facebook应用页面(业务页面)中发布作为管理用户的任何人

时间:2014-01-22 14:49:33

标签: php facebook facebook-graph-api

任何人都知道如何在Facebook商业页面墙上发布任何管理用户(谁拥有“经理”特权)? 我代表我的客户创建了一些测试帐户。并将其ID用作“APP_ID”。如果我通过该帐户发布,它工作正常。但不能使用任何其他“经理”特权用户帐户发布。

$config = array(
  'appId' => $APP_ID, 
  'secret' => $APP_SECRET
);
$facebook = new Facebook($config);
$fbuser_id = $facebook->getUser();

我正在使用上面的代码。 因此,需要将预定义的用户ID作为app_id传递。

有没有办法获取当前登录用户ID?

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。

必须在该登录用户下获取该特定页面的access_token。

$result =  $facebook->api("/me/accounts");
// loop trough all your pages and find the right one
if( !empty($result['data']) )
{
    foreach($result["data"] as $page) 
    {
      if($page["id"] == $page_id)
      {
         $page_access_token = $page["access_token"];
         break;
      }
        }
}

将access_token设置为facebook对象

$facebook->setAccessToken($page_access_token);

之后调用“post”函数。

$msg = array(
'message' => 'Message body',
'caption' => 'This is Title',
'link' => 'http://www.yoursite.com/page/$i',
'picture' => 'http://www.yoursite.com/images/logo.jpg');
$postResult = $facebook->api('/'.$page_id.'/feed', 'post', $msg );

注意:如果没有配置access_token;发布消息将发布给任何“经理”角色用户到FB页面而没有消息的“链接”属性。如果您在帖子消息中添加“链接”属性,则不会发布!