【问题标题】:Posting a Feed on a Administered Facebook Page在管理的 Facebook 页面上发布提要
【发布时间】:2013-11-27 06:06:09
【问题描述】:

我试图在我在 Facebook 管理的页面上发帖并使用此代码。

$fb_key['key'] = 'fb_access_token';
$access = Model_const::read_key($fb_key);
$f = new facebook\fb($cfg);
$f->setAccessToken($access['value']);

$p = 'User is not logged in';
if($f->getUser())
{
   $page_arg['access_token'] = $f->getAccessToken();
   $page_arg['fields']        = 'access_token';
   $page_info = $f->api("/$fb_id",'get',$page_arg);

   $fb  = array();
   $fb['link'] = $uri;
   $fb['message'] = Input::post('content');
   $fb['access_token'] = $page_info['access_token'];

   $p = $f->api("$fb_id/feed",'POST',$fb);
}

我在这里关注了thread,似乎 $page_info 部分无法被 FB api 识别。阅读文档并没有帮助,尽管我可以使用我的个人帐户发布。我想把它放在我的 facebook 非人类页面上。

我希望有人可以提供如何通过 PHP SDK 做到这一点。

【问题讨论】:

    标签: php facebook facebook-graph-api facebook-php-sdk facebook-access-token


    【解决方案1】:

    实际上,您必须从管理员用户帐户中检索页面访问令牌 这是文档的链接 https://developers.facebook.com/docs/facebook-login/access-tokens/#pagetokens

    【讨论】:

    • 我认为 OP 也在做同样的事情。
    • paga 访问令牌是否像用户令牌一样过期?
    • 能否请您阅读整个文档?答案已经在里面了。
    【解决方案2】:

    我认为您缺少权限:ma​​nage_pages

    使用您的登录代码添加此权限。

    • 如果您使用的是 getLoginUrl(),请参阅 here

    • 如果使用直接验证对话 url,添加如下:

      $dialog_url= "http://www.facebook.com/dialog/oauth?" . “client_id=”。 $app_id . “&redirect_uri=”。 urlcode($post_login_url) . "&scope=manage_pages";

    另一件事,如果您想延长 永不过期的页面访问令牌,我在此线程中已进行了相同的解释:What are the Steps to getting a Long Lasting Token For Posting To a Facebook Fan Page from a Server

    其余的似乎是正确的。祝你好运。

    【讨论】:

    • 我在facebook设置中添加了。
    • 不,不在应用设置中,这不会影响向用户询问哪些权限。使用scope参数将它们添加到登录代码
    猜你喜欢
    • 2014-07-16
    • 2014-03-12
    • 2011-03-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    相关资源
    最近更新 更多