0

Facebook ページ (例: https://www.facebook.com/stackoverflowpage ) から特定のいいね数 (例: 10,000) を超える最新の 10 枚の写真を自動的に取得するスクリプトを PHP で作成する必要があります。スクリプトを 1 時間ごとに実行して、すべての写真とタイトルを確実に取得したいと考えています。

これは今までになかったと思います。あなたの意見では、この問題への最善のアプローチは何ですか?

次の 3 つの選択肢があると思います。

  1. Facebook ページの HTML コードを介してデータをフェッチする
  2. Facebook Graph 経由でデータをフェッチする
  3. Facebook API 経由でデータを取得する
4

1 に答える 1

0

スクリプトを終了しました。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...
        }
    }
}
于 2013-03-21T15:30:02.363 に答える