FB Graph API发布到我的一个页面的墙上

时间:2015-01-25 21:08:49

标签: php facebook api session facebook-graph-api

我不明白FB' API非常愚蠢,或者我的API认知不适合这个。我的目标非常简单。我有一个CMS。当我从CMS的管理页面创建新闻时,我也想将其发布到我的Facebook页面。这个API让我烦恼! 这是我的代码;

$s = FacebookSession::setDefaultApplication('appid', 'secret'); 
$session = FacebookSession::newAppSession();

// when I use belowed two line, I'm getting error
//$request = new FacebookRequest($session, 'GET', '/me'); 
//$pageList = $request->execute()->getGraphObject()->asArray(); 
$session = new FacebookSession('I don't know what to write here? I have a session already? When I use the access token which taken from api explorer page, due to it's life is short, I'm getting also error.'); 
$page_post=(new FacebookRequest( $session, 'POST','/<my_page_id_not_my_profile_id>/feed', array(
                    'access_token' => 'die!!! one more token! what is this!',
                    'link' => 'link',
                    'message' => 'message', ) ))->execute()->getGraphObject()->asArray();

注意:我不想要弹出窗口登录或任何其他方法。我想要一个无辜的API,像twitter一样甜蜜地使用...

1 个答案:

答案 0 :(得分:0)

Facebook API与Twitter非常相似。您不能仅在Twitter上发布应用会话,您需要授权用户。

由于Facebook上有用户配置文件和页面,因此有用户访问令牌和页面访问令牌。您需要的是一个页面访问令牌,您可以通过授权用户使用您的应用获取用户令牌并调用/me/accounts端点来获取您管理的所有页面的页面令牌。此外,您需要使用publish_actionsmanage_pages权限授权用户。之后,您可以将/page-id/feed端点与该页面标记一起发布到您的页面墙“作为页面”。

以下是有关访问令牌的更多信息,您需要的是一个永久持续的“扩展页面令牌”: