使用Facebook Graph API下载所有FB页面相册图像

时间:2017-06-17 08:17:04

标签: php api

我想一键下载FB页面相册的所有图像。我正在尝试下面的代码。

<?php
$json = file_get_contents('https://graph.facebook.com/v2.3/1609936302636077/photos?access_token=MYTOKEN&pretty=1&limit=200');
$data = json_decode($json,true);
foreach ($data['data'] as $page) {
    echo $page[source];
    echo "<br>";
}
?>

我正在获取图片网址但FB会立即限制最多100张图片网址,然后他们会提供分页网址,然后再次获取100张图片。

我该如何实现?我试过循环,但我很弱。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

您可以使用递归来获取下一页。但是如果页面的页面非常多。此代码将使excerption消息超时。

$token ='your token';
$url = "https://graph.facebook.com/v2.3/1609936302636077/photos?access_token=$token&pretty=1&limit=200";
getApiData($url);
function getApiData($url){
  $json = file_get_contents($url);
  $data = json_decode($json,true);
  echo count($data['data']).'<br>';
  if(isset($data['paging']) && isset($data['paging']['next'])){
    getApiData($data['paging']['next']);
  }
}

尝试使用方法

  • 将下一个URL保存到文本文件并使用cronjob读取url并运行代码下载文件。
  • 使用Ajax
  • 使用库schedule