【问题标题】:Posting to PAGE as PAGE作为 PAGE 发布到 PAGE
【发布时间】:2012-02-20 18:17:53
【问题描述】:

我正在尝试将(在 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;
}
?>

和发帖的代码:

<?
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/")

?>

【问题讨论】:

标签: oauth facebook-php-sdk access-token user-permissions


【解决方案1】:

您知道offline_access 已被弃用吗?

【讨论】:

  • 我没看到...谢谢。所以,我猜想以页面的形式自动发布到页面,每次都必须获得一个新的令牌(或交换令牌)?有样品吗?
【解决方案2】:

刚刚创建了一个全新的应用程序。确保启用了已弃用的脱机访问。去资源管理器,在下拉菜单中找到了我的新应用,授予自己manage_pages,去me/accounts 抓取了其中一个页面访问令牌,然后对其进行了linted。Bummer,1 小时到期,所以这不好。所以我尝试交换那个 1 小时页面令牌,但我收到了来自 Facebook 的错误。

我回到了用户访问令牌,并用它换了一个 60 天的令牌。在 linter 中验证这是 60 天。回到me/accounts 并抓取其中一个页面访问令牌并对其进行检查。惊喜!从那里获得了 60 天的令牌。

所以这个故事的寓意是,你不能交换页面代币,只能交换用户代币。但是使用 60 天的用户令牌,您可以获得 60 天的页面令牌。 :)

【讨论】:

    猜你喜欢
    • 2012-02-01
    • 1970-01-01
    • 2011-08-31
    • 2023-03-05
    • 2018-04-01
    • 2020-06-01
    • 1970-01-01
    • 2020-09-05
    • 2017-05-17
    相关资源
    最近更新 更多