Facebook的PHP SDK图形API后页面不正常

问题描述:

我想增加一个功能,我的应用程序,就好像它们贴在Facebook.com上,将发布一个状态,一个管理员用户的页面时间表使用相同的细节。我注重的主要特点是连接共享和缩略图,就像当你粘贴链接到你的状态,它会自动检测缩略图,给你一个很好的链接,描述等。我不得不通过其他论坛读不倦和Graph API文档,我一直遇到问题,显示为admin用户而不是页面。这里是我的代码:Facebook的PHP SDK图形API后页面不正常

$facebook = new Facebook(array(
    'appId' => $appID, 
    'secret' => $appSecret, 
)); 

$loginUrl = $facebook->getLoginUrl(array(
    "scope" => 'publish_stream, read_insights, manage_pages, photo_upload, video_upload, create_note, manage_notifications' 
)); 

$access_token = $facebook->getAccessToken(); 

$fbpost = array(); 

$fbpost['access_token'] = $access_token; 
$fbpost['message']  = $message; 
$fbpost['link']   = $link; 
$fbpost['description'] = $description; 
$fbpost['caption']  = $caption; 
$fbpost['picture']  = $fbimg; 

$status = $facebook->api('/'.$pageID.'/feed', 'POST', $fbpost); 
var_dump($status); 

当我只发布了$ fbpost [“消息”]它正确职位地位的页面,但是当我添加任何东西它显示了岗位作为身份验证的管理员用户,而不是这一页。非常令人沮丧。有任何想法吗?

+0

此外,当它作为admin用户发布时,它显示链接,图片等作为附件,然后通过应用程序进行身份验证。这不像是真的发布到状态时间表。 – iDsteven

我一直遇到问题,显示为管理员用户,而不是页面。

然后得到一个page access token,而不是管理员用户的用户访问令牌......

+0

谢谢CBroe,没有在第一时间通知我看着它这个网页上所需要的额外的access_token(有太多的Facebook文档!)。由于没有关于如何在PHP中处理这个问题的很好的文档,我也会发布一个答案。再次感谢! – iDsteven

感谢CBroe用于提供link to the Facebook docs on the page/app access token。检查完后,我想出了这个PHP(因为PHP SDK中没有用于获取页面访问令牌的良好文档):

$user_token  = $facebook->getAccessToken(); 
$accounts  = $facebook->api('/me/accounts?access_token='.$user_token); 
$account_token = 0; 
foreach ($accounts['data'] as $account) { 
    if ($account['id'] == $_SESSION['facebook']) { 
     $account_token = $account['access_token']; 
    } 
} 

if ($account_token) { 
    /// your page token code 
} else { 
    echo 'You must be an admin on this page!'; 
}