检索Facebook页面墙贴

时间:2011-08-24 19:56:55

标签: facebook access-token

我想将FB页面墙包含在网站中。为此我需要访问令牌,但在FB上我是管理员之一而不是所有者。

当我请求访问令牌时,我得到的是我的个人资料,而不是我管理的个人资料。我可以以管理员而非所有者的身份获得该墙的令牌吗?

3 个答案:

答案 0 :(得分:0)

如果查看http://developers.facebook.com/docs/authentication/,您可以看到有作为应用程序或页面登录的选项:这些选项应该为您提供满足您需要的访问权限。

答案 1 :(得分:0)

来自:http://developers.facebook.com/docs/reference/api/permissions/

“Page access_token

用于管理页面的access_token。当您想要执行充当页面的操作时使用此选项。通过向/ USER_ID / accounts发出HTTP GET或使用 manage_pages 权限向/ PAGE_ID?fields = access_token发出此访问令牌。获取/ USER_ID / accounts将返回用户具有管理访问权限的页面列表(包括应用程序配置文件页面)以及每个页面的access_token。注意:2011年9月22日之后,通过此连接对用户页面的所有访问都需要manage_pages权限,即读取用户页面和检索这些页面的access_tokens。有关详细信息,请参阅User对象的文档。“

答案 2 :(得分:0)

Facebook有extendedpage对象,可以更轻松地检索“页面”`access_token',您需要的是:

P.S:我正在使用PHP-SDK

<?php
// This code is just a snippet of the example.php script
// from the PHP-SDK <http://github.com/facebook/php-sdk/blob/master/examples/example.php>
require '../src/facebook.php';

// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
  'appId'  => 'app_id',
  'secret' => 'app_secret',
));

// Get User ID
$user = $facebook->getUser();

if ($user) {
  try {
    $page_id = 'page_id';
    $page_info = $facebook->api("/$page_id?fields=access_token");
    if( !empty($page_info['access_token']) ) {
        $args = array(
            'access_token'  => $page_info['access_token']
        );
        $page_posts = $facebook->api("/$page_id/posts","get",$args);
    }
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// Login or logout url will be needed depending on current user state.
if ($user) {
  $logoutUrl = $facebook->getLogoutUrl();
} else {
  $loginUrl = $facebook->getLoginUrl(array('scope'=>'manage_pages,read_stream'));
}
?>