我有什么方法可以获取任意页面ID的访问令牌,我应该能够代表管理员在页面上发帖吗?
答案 0 :(得分:0)
我猜你不想成为客户网页的管理员:
您可以创建一个页面,以便您的客户登录到Facebook和 授予您应用的权限。
然后您可以获取页面访问令牌并将其保存在您的数据库中。
最后使用该访问令牌直接发布到每个页面 管理员,而不是您的实际管理员。
要获取页面访问令牌,您需要从获取用户开始 访问令牌并要求manage_pages权限。一旦你有了 然后,用户访问令牌通过Graph获取页面访问令牌 API。
获取用户访问令牌(假设您已登录到fbk并已授予您的应用程序权限):
$user = $facebook->getUser();
if(!$user) {
$login_url_params = array(
'scope' => 'publish_stream,read_stream,manage_pages',
'fbconnect' => 1,
'redirect_uri' => 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']
);
$login_url = $facebook->getLoginUrl($login_url_params);
//redirect to the login URL on facebook
header("Location: {$login_url}");
}
不要忘记获取时间扩展访问令牌
$facebook->setExtendedAccessToken();
$access_token = $facebook->getAccessToken();
使用该令牌,您可以通过API获取页面令牌:
$accounts = $facebook->api(
'/me/accounts',
'GET',
array(
'access_token' => $access_token
)
);
$ accounts将是一个关联数组,其中包含您管理的页面的所有信息(包括每个页面的标记)。要获取特定页面的令牌知道其ID:
$accounts = $accounts['data'];
foreach($accounts as $account){
if( $account['id'] == $pagId ){
//$pagId would be the ID of the page you want to use
//This is the token of the page with the ID $pagId
$page_access_token = $account['access_token'],
}
}