Привет, я пытаюсь захватить все фотографии из определенного альбома (всегда один и тот же 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) { } }
Когда я использую 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: