繁体   English   中英

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

[英]Get ALL photos from a facebook album (PHP API)

我的源代码有问题。 自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。

看起来您在错误的位置使用了限制。 尝试-

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM