[英]Retrieve Facebook Page wall posts
我想将FB Page墙包含在网站中。 为此,我需要访问令牌,但是在FB上,我是管理员之一,而不是所有者。
当我请求访问令牌时,我得到的是我的个人资料之一,而不是我正在管理的个人资料。 我可以以管理员身份而非所有者身份获得该墙的令牌吗?
如果您查看http://developers.facebook.com/docs/authentication/ ,则可以看到有一些以应用程序或页面身份登录的选项:这些选项应该可以为您提供所需的访问令牌。
来自: http : //developers.facebook.com/docs/reference/api/permissions/
“页面access_token
用于管理页面的access_token。 当您要执行充当页面的操作时使用此功能。 通过向/ USER_ID / accounts或具有manage_pages权限的/ PAGE_ID?fields = access_token发出HTTP GET,可以检索此访问令牌。 获取/ USER_ID / accounts会返回用户具有管理访问权限的页面列表(包括应用程序配置文件页面),以及每个页面的access_token。 注意:2011年9月22日之后,通过此连接对用户页面的所有访问都将需要manage_pages权限,即,既要读取用户页面,又要检索这些页面的access_tokens。 有关更多信息,请参见User对象的文档。”
Facebook 扩展了page
对象,使其更易于检索“页面”`access_token“,您需要的是:
PS:我正在使用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'));
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.