Facebook PHP SDK Graph API 发布到页面无法正常运行


Facebook PHP SDK Graph API post to page not functioning properly

我正在尝试向我的应用程序添加一项功能,该功能会将状态发布到管理员用户的页面时间线,其详细信息与他们在 Facebook.com 上发布的详细信息相同。 我关注的主要功能是链接共享和缩略图图像,例如当您将链接粘贴到状态中时,它会自动检测缩略图图像,为您提供漂亮的链接、描述等。 我孜孜不倦地阅读了其他论坛和 Graph 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['message'] 时,它会正确地将状态发布为页面,但是当我添加任何其他内容时,它将帖子显示为经过身份验证的管理员用户而不是页面。 非常令人沮丧。 有什么想法吗?

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

然后获取页面访问令牌,而不是管理员用户的用户访问令牌...

感谢CBroe在页面/应用程序访问令牌上提供指向Facebook文档的链接。 检查完之后,我想出了这个 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!';
}