facebookphpsdk&;页面提要帖子(筛选结果)

facebookphpsdk&;页面提要帖子(筛选结果),php,facebook,facebook-php-sdk,Php,Facebook,Facebook Php Sdk,Facebook PHP SDK和页面提要(过滤结果) 你好!我最近一直在研究一种有效的方法,在网站上实现一个Facebook公共页面提要(每篇文章都有描述、日期和图片)。 我已经整理了下面的代码,它允许我在$elements上使用foreach $pageid = '#PAGEID#'; $accesstoken = '#ACCESSTOKEN#'; $url = "https://graph.facebook.com/v2.7/$pageid/feed?limit=20&access

Facebook PHP SDK和页面提要(过滤结果)

你好!我最近一直在研究一种有效的方法,在网站上实现一个Facebook公共页面提要(每篇文章都有描述、日期和图片)。 我已经整理了下面的代码,它允许我在$elements上使用foreach

$pageid = '#PAGEID#';
$accesstoken = '#ACCESSTOKEN#';
$url = "https://graph.facebook.com/v2.7/$pageid/feed?limit=20&access_token=$accesstoken";

function getfb($url){

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_REFERER, '');
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);
    $raw_xml = curl_exec($curl); // execute the curl command
    $result = json_decode($raw_xml, true);

    return $result;
}

$elements = getfb($url);
foreach($elements['data'] as $k => $v){
    $url = "https://graph.facebook.com/v2.7/{$v['id']}?fields=full_picture,picture&access_token=$accesstoken";
    $fields = getfb($url);
    $elements['data'][$k]['pictures'] = $fields;
}

var_dump($elements);
它确实工作得很好,但不幸的是,它不仅列出了所有者在页面上发布的帖子,还列出了在“访问者帖子”框中发布的帖子。。。这是我不想要的。 您是否知道和/或可以帮助我找出如何过滤这些结果,以便只列出页面所有者发布的帖子


多谢各位

感谢Luschn和CBroe发布的建议,我继续阅读/查找,并使用以下代码结束。我还不确定这是否是正确的/最好的方法,但它确实工作得很好

require_once ('facebook/autoload.php'); // See https://developers.facebook.com/docs/reference/php/

$facebook_page_id           = 'xxx';
$facebook_app_secret        = 'yyy';
$facebook_app_id            = 'zzz';
$facebook_graph_version     = 'v2.6';

$fb = new Facebook\Facebook([
    'app_id' => $facebook_app_id,
    'app_secret' => $facebook_app_secret,
    'default_graph_version' => $facebook_graph_version
]);

$response = $fb->get( '/'.$facebook_page_id.'/posts?fields=message,full_picture,link,updated_time,picture&limit=5', $fb->getApp()->getAccessToken() );

$get_data = $response->getDecodedBody(); // for Array resonse

foreach ( $get_data['data'] as $single ) {

    var_dump($single);

}

感谢Luschn和CBroe发布的建议,我继续阅读/查找,并使用以下代码结束。我还不确定这是否是正确的/最好的方法,但它确实工作得很好

require_once ('facebook/autoload.php'); // See https://developers.facebook.com/docs/reference/php/

$facebook_page_id           = 'xxx';
$facebook_app_secret        = 'yyy';
$facebook_app_id            = 'zzz';
$facebook_graph_version     = 'v2.6';

$fb = new Facebook\Facebook([
    'app_id' => $facebook_app_id,
    'app_secret' => $facebook_app_secret,
    'default_graph_version' => $facebook_graph_version
]);

$response = $fb->get( '/'.$facebook_page_id.'/posts?fields=message,full_picture,link,updated_time,picture&limit=5', $fb->getApp()->getAccessToken() );

$get_data = $response->getDecodedBody(); // for Array resonse

foreach ( $get_data['data'] as $single ) {

    var_dump($single);

}

//仅供参考,如果您在每次加载页面时都这样做,而不在您的终端实现任何缓存,那么这远不是“有效的”,这一点应该是显而易见的。你很可能会遇到API速率限制。为什么不把它放在一个调用中,而不是放在那个奇怪的foreach中呢?>pageid/feed?fields=消息,全图,图片如果我没有要求太多,你能抽出几分钟告诉我正确的方法吗?我一直在努力实现这些API,如果你能帮我一把的话,我真的很乐意。提前感谢//FYI,如果您在每次加载页面时都这样做,而不在您的端实现任何缓存,那么这远不是“有效的”,这一点应该是显而易见的。你很可能会遇到API速率限制。为什么不把它放在一个调用中,而不是放在那个奇怪的foreach中呢?>pageid/feed?fields=消息,全图,图片如果我没有要求太多,你能抽出几分钟告诉我正确的方法吗?我一直在努力实现这些API,如果你能帮我一把的话,我真的很乐意。提前谢谢