获取所有图片从特定的Facebook相册与图形API PHP SDK


Get all images from specific Facebook album with Graph API PHP SDK

嗨,我正试图从一个特定的相册(总是相同的硬编码id)抓取所有图片。我使用的是Facebook的图形API PHP SDK。这是我的代码:

<?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是我的相册id,不受限制,对所有人开放
  • access_token是我从应用程序页面为我的fb id获得的令牌。我没有得到oauth错误。
  • 我有权限(user_photos),并试图添加一打其他权限。
  • 当我用图形API资源管理器尝试它时,它可以工作到。

当我使用Javascript SDK时,它工作得很好…

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

输出:Diep in de put

我忘了什么吗?

我明白了!应该是:<罢工>

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

对于新的Facebook 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>

我觉得很奇怪,它与JS工作,而不是PHP…这让我觉得这与你的PHP FB设置有关。你有没有再打个电话确认一下?如

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

还要确保你已经检查了这些:

要读取'photo'对象,需要

任何有效的access_token,如果它是公共user_photos权限访问用户user_photo_video_tags上传的照片和相册访问用户已被标记的照片的权限Friends_photos访问朋友照片的权限访问照片的Friends_photo_video_tags权限用户的好友已被标记

Src:

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