我想将FB页面墙包含在网站中。为此我需要访问令牌,但在FB上我是管理员之一而不是所有者。
当我请求访问令牌时,我得到的是我的个人资料,而不是我管理的个人资料。我可以以管理员而非所有者的身份获得该墙的令牌吗?
答案 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有extended个page
对象,可以更轻松地检索“页面”`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'));
}
?>