我试图自动张贴(在PHP中)到一个Facebook页面,作为Facebook页面。我在获取一个未过期的令牌,然后作为页面发布时遇到了问题。似乎我可以使用未过期的令牌作为用户发布,但不能作为页面发布。由于文档在示例方面还有很多不足之处,有人能概述一下实现这一点的步骤吗?我已经创建了一个应用程序,并从用户授予manage_pages,publish_stream和offline_access权限。当我尝试发布到页面时(没有问题),它以用户身份发布,而不是页面。我正在与用户的未过期访问令牌与页面的未过期令牌的概念作斗争。
用于授予权限的代码:
<?
require_once 'facebook.php';
$app_id = "APP_ID";
$app_secret = "APP_SECRET";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
if(is_null($facebook->getUser()))
{
header("Location:{$facebook->getLoginUrl(array('req_perms' => 'user_status,publish_stream,user_photos,manage_pages,offline_access'))}");
exit;
}
?>以及生成post的代码:
<?
require_once 'facebook.php';
$app_id = "APP_ID";
$app_secret = "APP_SECRET";
$page_id = "PAGE_ID";
$page_access_token = "PAGE_TOKEN";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true
));
if( !empty($page_access_token) ) {
$args = array(
'access_token' => $page_access_token,
'message' => "Test post"
);
$post_id = $facebook->api("/$page_id/feed","post",$args);
} else {
}
header("Location: http://example.com/")
?>发布于 2012-02-21 03:40:02
你知道offline_access已经被弃用了吗?
发布于 2012-02-22 04:06:55
刚刚创建了一个全新的应用程序。已确保启用了弃用脱机访问。转到资源管理器,在下拉列表中找到我的新应用程序,授予我自己manage_pages权限,转到me/accounts,抓取一个页面访问令牌,然后linted it.Bummer,1小时到期,所以这不是很好。因此,我尝试交换1小时的页面令牌,但从Facebook得到一个错误。
我返回到用户访问令牌,并将其交换为60天的令牌。在林特中验证了这是一个60天。返回到me/accounts并抓取一个页面访问令牌并将其插入。惊喜吧!从那里得到了一个60天的代币。
所以这个故事的寓意是,你不能交换页面令牌,只能交换用户令牌。但是使用60天的用户令牌,您可以获得60天的页面令牌。:)
https://stackoverflow.com/questions/9366284
复制相似问题