从facebook相册中获取所有照片(PHP API)

时间:2014-03-27 22:26:04

标签: php facebook api facebook-graph-api facebook-php-sdk

我的源代码出现问题。自8/9个月以来我一直没有使用过,现在已经不再使用了。

我希望在我的相册中列出我的所有照片,但现在它只列出了每张相册的25张照片,而不是更多。我每张专辑都有100/200/250张照片(派对拍摄),我想将它们列入我自己的网站(使用Facebook带宽)

这是我的源代码:

<?php 
    ob_start();
    session_start();
    include_once('facebook.php');
?>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Albums</title>
</head>
<body>
<?php

$params = array(
    'appId' => APP_ID,
    'secret' => APP_SECRET,
);
$facebook = new Facebook($params);
$user = $facebook->getUser();
$log = null;

if ($user) {
    $log = $facebook->getLogoutUrl();
} else {
    $log = $facebook->getLoginUrl(array('scope' => 'user_photos'));
}
echo '<a href="'.$log.'">' . (($user) ? 'logout' : 'login') . '</a>';
    if ($user) {
        $data = $facebook->api(
            '/me/albums',
            'GET',
            array(
                'fields' => 'id,name,privacy,photos.fields(id,name,images)',
                'limit' => '300'
            )
        );

        foreach ($data['data'] as $album) {
            echo '<div>';
                echo '<h3>' . $album['name'] . ' ' . $album['privacy'] . '</h3>';
                echo '<textarea style="width: 800px; height: 500px;">';
                    foreach ($album['photos']['data'] as $photo) {
                                echo $photo['images'][0]['source'].'';
                    }
                echo '</textarea>';

                echo '<textarea style="width: 800px; height: 500px;">';
                    foreach ($album['photos']['data'] as $photo) {
                               echo $photo['images'][7]['source'].'';
                    }
                echo '</textarea>';
            echo '</div>';
            //break;
        }
    }

    ?>
</body>
</html>
<?php ob_flush(); ?>

因此,如果您正在测试此代码,您会看到它列出了您所有相册但不是所有图片,它会停止到25。

1 个答案:

答案 0 :(得分:0)

看起来你在错误的地方使用限制。尝试 -

$data = $facebook->api(
           '/me/albums',
           'GET',
           array(
               'fields' => 'id,name,privacy,photos.fields(id,name,images).limit(300)',
               'limit' => '50'
           )
       );

在这种情况下,FB会将您的相册限制为50,将相册中的照片限制为300。