我需要在PHP中创建一个脚本,自动从Facebook页面(示例:https://www.facebook.com/stackoverflowpage)中获取最新的10张图片,这些图片有超过特定数量的喜欢(示例:10,000)。我想每小时运行一次脚本,以确保抓取到所有带有标题的图片。
我想以前从来没有人这样做过。你认为解决这个问题的最好方法是什么?
我想我有三个选择:
- 通过Facebook页面的HTML代码获取数据
- 通过Facebook Graph获取数据
- 通过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...
}
}
}