Получить все изображения из определенного альбома Facebook с помощью Graph API PHP SDK

Привет, я пытаюсь захватить все фотографии из определенного альбома (всегда один и тот же hardcoded id). Я использую Graph API PHP SDK из Facebook. Это мой код:

<?php require 'phpfiles/facebook.php'; $facebook = new Facebook(array( 'appId' => 'aaaa', 'secret' => 'bbbb', 'cookie' => true )); $user_profile = $facebook->api('/1881235503185/photos?access_token=cccc'); var_dump($user_profile); 

Результат var_dump:

 array(1) { ["data"]=> array(0) { } } 
  • 1881235503185 – это идентификатор моего альбома, который не ограничен, он открыт для всех
  • access_token – это токен, который я получаю с моей страницы приложения для моего идентификатора fb. Я не ошибаюсь.
  • У меня есть разрешения (user_photos), и я попытался добавить еще дюжину других разрешений.
  • Когда я пытаюсь использовать его с помощью API-интерфейсов Graph API, он работает.

Когда я использую Javascript SDK, он отлично работает …

 FB.api('/1881235503185/photos?access_token=cccc', function(response) { alert(response.data[0].name); }); 

Результат: Diep in the put

Я что-то забыл?

Я понял! Должен быть:

 $user_profile = $facebook->api('/1881235503185/photos', array('access_token' => 'cccc')); 

С новым PHP PHP SDK это должно быть:

 $albumjson = $facebook->api('/1881235503185?fields=photos'); 
 <?php require_once 'library/facebook.php'; try{ $facebook = new Facebook(array( 'appId' => $app_id, 'secret' => $app_secret, 'cookie' => true )); if(is_null($facebook->getUser())) { header("Location:{$facebook->getLoginUrl(array('req_perms' => 'user_status,publish_stream,user_photos'))}"); exit; } $me = $facebook->api('/me'); }catch(Exception $e){ echo $e->getMessage(); echo '<p>Please try clearing your browser cookies or <a href="http://demos.frnzzz.com/fbAlbum/photos.php">click here</a>.</p>'; die; } ?> <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.slideshow').cycle({ fx: 'fade' }); }); </script> <title>WebSPeaks.in | Access facebook Albums on your site using PHP</title> </head> <body> <?php $albums = $facebook->api('/me/albums'); $action = $_REQUEST['action']; $album_id = ''; if(isset($action) && $action=='viewalbum'){ $album_id = $_REQUEST['album_id']; $photos = $facebook->api("/{$album_id}/photos"); ?> <div class="slideshow"> <?php foreach($photos['data'] as $photo) { echo "<img src='{$photo['source']}' />"; } ?> </div> <?php } $pageURL .= 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; echo '<div class="alb">'; if(strstr($pageURL,'.php?')){ $and = '&'; }else{ $and = '?'; } echo '<p class="hd">My Albums</p>'; foreach($albums['data'] as $album) { if($album_id == $album['id']){ $name = '<b><u>'.$album['name'].'</u></b>'; }else{ $name = $album['name']; } echo '<p>'."<a href=".$pageURL.$and."action=viewalbum&album_id=".$album['id'].">".$name.'</a></p>'; } echo '</div>'; ?> </body> </html> - <?php require_once 'library/facebook.php'; try{ $facebook = new Facebook(array( 'appId' => $app_id, 'secret' => $app_secret, 'cookie' => true )); if(is_null($facebook->getUser())) { header("Location:{$facebook->getLoginUrl(array('req_perms' => 'user_status,publish_stream,user_photos'))}"); exit; } $me = $facebook->api('/me'); }catch(Exception $e){ echo $e->getMessage(); echo '<p>Please try clearing your browser cookies or <a href="http://demos.frnzzz.com/fbAlbum/photos.php">click here</a>.</p>'; die; } ?> <html> <head> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script> <script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.slideshow').cycle({ fx: 'fade' }); }); </script> <title>WebSPeaks.in | Access facebook Albums on your site using PHP</title> </head> <body> <?php $albums = $facebook->api('/me/albums'); $action = $_REQUEST['action']; $album_id = ''; if(isset($action) && $action=='viewalbum'){ $album_id = $_REQUEST['album_id']; $photos = $facebook->api("/{$album_id}/photos"); ?> <div class="slideshow"> <?php foreach($photos['data'] as $photo) { echo "<img src='{$photo['source']}' />"; } ?> </div> <?php } $pageURL .= 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; echo '<div class="alb">'; if(strstr($pageURL,'.php?')){ $and = '&'; }else{ $and = '?'; } echo '<p class="hd">My Albums</p>'; foreach($albums['data'] as $album) { if($album_id == $album['id']){ $name = '<b><u>'.$album['name'].'</u></b>'; }else{ $name = $album['name']; } echo '<p>'."<a href=".$pageURL.$and."action=viewalbum&album_id=".$album['id'].">".$name.'</a></p>'; } echo '</div>'; ?> </body> </html> 

Мне кажется странным, что он работает с JS, а не с PHP … Заставляет меня думать, что это что-то связано с вашей установкой PHP FB .. Вы пробовали другой звонок, чтобы проверить, нет? Такие как

 $facebook->api('/me'); 

Также убедитесь, что вы проверили:

Чтобы прочитать объект «фото», который вам нужен

любой действительный access_token, если это public user_photos разрешение на доступ к фотографиям и альбомам, загруженным пользователем user_photo_video_tags, разрешение на доступ к фотографиям, в которых пользователь был отмечен. friends_photos разрешает доступ к друзьям. friends_photo_video_tags разрешает доступ к фотографиям, в которых были помечены друзья пользователя

Src:

http://developers.facebook.com/docs/reference/api/photo/