使用Facebook分页显示用户的照片

问题描述 投票:0回答:1

您好,我正在尝试在我的应用程序中显示用户的照片,但我不希望它们全部出现在同一页面中,因为它们可能很多并且会导致延迟。我还没有找到任何好的例子来帮助我管理它。这是我的代码:它目前仅显示前 25 张照片,上一张和下一张按钮已损坏

if ($user) {

  try 
 {
$curPage = $_REQUEST["page"];
$curOffset = $curPage * 25;
$nextPage = $curPage + 1;
if ($curPage > 0) {
  $prevPage = $curPage - 1;
} else {
  $prevPage = 0;
} 
 $photos = $facebook->api('/me/photos/photos&offset='.$curOffset.'&limit=25');
 echo '<table><tr>';
foreach($photos['data'] as $photo)
{

 if($a <= 4){ //number of cells in row  print ('<a href="editor.php?photo_id='.$photo['id'].'"><img src='{$photo['picture']}'.'</a>'/>');

  echo '<td>';
  //echo "<img src='{$photo['picture']}' />";
  print ('<a href="editor.php?photo_id='.$photo['id'].'"><img src='.$photo['picture'].' /></a>');
  echo '</td>';
     $a++;
    }
 else {
  echo '</tr><tr>';
  echo '<td>';
    print ('<a href="editor.php?photo_id='.$photo['id'].'"><img src='.$photo['picture'].' /></a>');

  //echo "<img src='{$photo['picture']}' />";
  echo '</td>';
    $a = 1;
    }

}
echo '</tr></table>';
$canvas_base_url = "http://apps.facebook.com/piggypic/";
 echo '<center><a href="'.$canvas_base_url.'taggedphotos.php?page='.$prevPage.'"><-- prev page</a>';

echo '<a href="'.$canvas_base_url.'taggedphotos?page='.$nextPage.'">next page --></a></center>';

任何帮助将不胜感激。请各位,我已经为此工作好几天了......

php facebook pagination photo
1个回答
2
投票

您应该使用 Graph API Explorer 进行一些实验,当您为对

limit
的调用提供
offset
graph.facebook.com
参数时(正如您上面所做的那样),您应该在响应分页链接中得到到下一批和上一批项目 - 查看来自 Graph API Explorer 查询此端点的结果片段:

https://graph.facebook.com/me/photos?limit=10&offset=15

     ...
  "paging": {
    "previous": "https://graph.facebook.com/me/photos?limit=1&format=json&since=1306425592&__previous=1", 
    "next": "https://graph.facebook.com/me/photos?limit=1&format=json&until=1306425591"
  }
}

如您所见,链接已存在于上一次通话的响应中。 尝试一下 - 这是一个很棒的工具。

© www.soinside.com 2019 - 2024. All rights reserved.