2017-06-17 100 views
0

我想单击下载FB页面相册的所有图片。我正在尝试下面的代码。用Facebook Graph 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>"; 
} 
?> 

我得到的图像的URL,但FB把最大100个图像URL的限制取一次,然后他们给寻呼URL,然后再取100张图像。

我该如何执行此操作?我尝试了循环,但我很弱。任何人都可以帮助我在这里与代码?

回答

0

您可以使用递归获取下一页。但是,如果页面的页面非常多。这段代码会抛出一个段落消息超时。

$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
相关问题