PHP для галереи изображений взят из Facebook, только первые 25 изображений
Извините, если это кажется глупым вопросом, но я понимаю, что у меня есть много, чтобы узнать о PHP. Мне было интересно, что я пропускаю, потому что, как следует из названия, моя галерея изображений, использующая PHP, берет изображения с сайта facebook, но каждый раз извлекает только первые 25 изображений, и все изображения являются общедоступными и загружаются одним и тем же человеком. Я использую учебник, взятый с этого сайта: http://www.webdesignermag.co.uk/tutorials/facebook-image-gallery/
И код, используемый специально это:
<?php
//Set the page name or ID
$FBid = 'ArazaArtesanias';
//Get the contents of a Facebook page
$FBpage = file_get_contents('https://graph.facebook.com/'.$FBid.'/albums');
//Interpret data with JSON
$photoData = json_decode($FBpage);
echo '<ul id="display-inline-block">';
foreach ( $photoData->data as $data )
{
echo '<li><a href="getphotos.php?album_id='.$data->id.'">
<img class="shadow" src="https://graph.facebook.com/'.$data->id.'/picture/" width=70 border=0 />
</a>';
echo '<br /><a href="getphotos.php?album_id='.$data->id.'">'.$data->name.'</a></li>';
}
echo '</ul>';
?>
А для отдельных альбомов галерея выглядит так:
<?php
//Get the contents of the album data page
$rawAlbumData = file_get_contents('https://graph.facebook.com/'.$_GET['album_id'].'/photos');
//Interpret data with JSON
$photoData = json_decode($rawAlbumData);
echo '<ul id="display-inline-block">';
foreach ( $photoData->data as $data )
{
echo '<li><a href="'.$data->source.'" rel="lightbox" title="';
if (property_exists($data, "comments")) {
foreach ( $data->comments->data as $Cdata )
{
echo htmlentities('<li class="imgcomments">
<a href="http://www.facebook.com/people/@/'.$Cdata->from->id.'" target="_blank"> <img src="https://graph.facebook.com/'.$Cdata->from->id.'/picture"
align=left border=0 />
</a>
<a href="http://www.facebook.com/people/@/'.$Cdata->from->id.'" target="_blank">
<b>'.$Cdata->from->name.'</a>: </b>'.$Cdata->message.'<br />
<div align="left" style="padding-bottom:10px;">
<small> Posted '.timeSince(strtotime($Cdata->created_time)).' ago</small></div> </li>');
}
}
else {
echo 'There are no comments on this album';
}
echo '"><img class="shadow" src="'.$data->picture.'" width=70 border=0 /></a></li>';
}
echo '</ul>';
//Get data about the photo album
$rawCommentData = file_get_contents('https://graph.facebook.com/'.$_GET['album_id']);
//Interpret comment data with JSON
$commentData = json_decode($rawCommentData);
echo '<div class="comments">';
echo '<h2>Album Comments</h2>';
if ( $commentData->comments->data ) {
foreach ( $commentData->comments->data as $data )
{
echo ' <a href="http://www.facebook.com/people/@/'.$data->from->id.'" target="_blank"><b>'
.$data->from->name.'</a>: </b>'.$data->message.'<br/><div align="left" style="padding-bottom:10px;">
<small> Posted '.timeSince(strtotime($data->created_time)).' ago</small></div></li>';
}
}
else {
echo 'There are no comments on this album';
}
echo '</div>';
?>
1 ответ
Это не имеет ничего общего с вашим PHP-кодом; URL, который вы используете для получения данных JSON, возвращает только 25 <data>
предметы (= картинки.)
Ознакомьтесь с документацией API Facebook о том, как получить более 25 изображений за раз или как указать "смещение" (например, чтобы вы могли получить изображения 26–50.)