什么是从Facebook主页上获取最近10张超过1万个赞的照片的最好方法?


What's the best way to grab the latest 10 pictures from Facebook Page with more than 10,000 likes?

我需要在PHP中创建一个脚本,自动从Facebook页面(示例:https://www.facebook.com/stackoverflowpage)中获取最新的10张图片,这些图片有超过特定数量的喜欢(示例:10,000)。我想每小时运行一次脚本,以确保抓取到所有带有标题的图片。

我想以前从来没有人这样做过。你认为解决这个问题的最好方法是什么?

我想我有三个选择:

  1. 通过Facebook页面的HTML代码获取数据
  2. 通过Facebook Graph获取数据
  3. 通过Facebook API获取数据

我刚写完剧本。以下是我在PHP中的解决方案:

$album_id = "20531316728";
$like_minimum = 5000;

$album_data = file_get_contents("https://graph.facebook.com/".$album_id."/photos");
$album_data_array = json_decode($album_data,true);
// loop album
foreach($album_data_array as $item){  
    // loop posts
    foreach($item as $item){ 
        // grab id, source, message
        $photo_id = $item[id];
        $photo_source = $item[source];
        $photo_message = $item[name];
        // count likes
        // facebook doesn't allow us to grab this data. we'll do it anyway.
        $like_data = file_get_contents("http://www.facebook.com/photo.php?fbid=".$photo_id);
        $like_count = explode(' others like this.","ranges":', $like_data);
        $like_count = $like_count[0];
        $like_count = explode('and ', $like_count);
        end($like_count);
        $key = key($like_count);
        $like_count = $like_count[$key];
        $like_count = str_replace(",", "", $like_count);
        $like_count = intval($like_count);
        // check if like_minimum reached
        if($like_count>$like_minimum){
            // SUCCESS!
            // Do stuff...
        }
    }
}