使用Facebook API 5.0 PHP获取页面访问令牌

S. *_*las 7 facebook facebook-graph-api facebook-php-sdk

我需要在Facebook页面上发布消息.具体来说,我想通过发布cron.

以下是API文档所说的内容:

页面访问令牌 - 这些访问令牌与用户访问令牌类似,不同之处在于它们为读取,写入或修改属于Facebook页面的数据的API提供权限.要获取页面访问令牌,您需要先获取用户访问令牌并询问manage_pages权限.获得用户访问令牌后,您将通过Graph API获取页面访问令牌.

如何在没有页面回调的情况下获取用户访问权限和页面访问权限令牌?这可能吗?

lus*_*chn 10

你需要什么扩展页面令牌,它永远有效.你得到一个这样的:

  • 授权manage_pages(publish_pages如果您想稍后发布),获取用户令牌
  • 扩展用户令牌
  • 使用/me/accounts?fields=access_token与扩展用户令牌来获得与扩展页令牌所有信息页的列表-或者使用/page-id?fields=access_token获得的扩展页令牌特定页面

有关所有令牌以及如何扩展用户令牌的信息:


f4r*_*4r4 7

PHP API V5

经过 24 小时的挠头后,下面的代码对我有用.... 希望这对您有所帮助,如果您需要此代码工作,您应该已经完成​​了前两个步骤

  1. 应该登录我使用的facebook getRedirectLoginHelper
  2. 使用回调文件上收到的用户访问令牌设置会话变量 $_SESSION['fb_access_token'] = (string) $accessToken;

$fbApp  = new Facebook\FacebookApp( 'xxx', 'xxx', 'v2.7' );
$fb      = new Facebook\Facebook( array(
    'app_id' => 'xxx',
    'app_secret' => 'xxx',
    'default_graph_version' => 'v2.7'
) );
$requestxx = new FacebookRequest(
    $fbApp,
    $_SESSION['fb_access_token'],//my user access token
    'GET',
    '/{page-id}?fields=access_token',
    array( 'ADMINISTER' )
);
$responset  = $fb->getClient()->sendRequest( $requestxx );
$json           = json_decode( $responset->getBody() );
$page_access    = $json->access_token;

//posting to page   
$requesty = new FacebookRequest(
    $fbApp,
    $page_access ,
    'POST',
    '/{page-id}/feed?message=Hello fans YYYYYYYYYYYYYYY'
);
$response = $fb->getClient()->sendRequest( $requesty );
var_dump( $response );
Run Code Online (Sandbox Code Playgroud)

  • 请理解我使用不在 wp 插件中的 php 文件进行了检查,这在 2016 年对我有用,另一个人在 2017 年 2 月使用,因此请检查文档并比较您的代码,而不是复制粘贴代码! (2认同)

jos*_*tgv 5

您可以通过以下方式获取页面令牌:

$response = $fb->get('/'.$pageId.'?fields=access_token', (string)$accessToken);
$json = json_decode($response->getBody());
$page_token = $json->access_token;
$response = $fb->post('/'.$pageId.'/feed', $fbData, $page_token);
Run Code Online (Sandbox Code Playgroud)