簡體   English   中英

從特定 Facebook 相冊中獲取所有圖像,帶有圖形 API PHP ZF20E3C5E54C0AB3D375D660B3F

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

嗨,我正在嘗試從特定相冊中獲取所有圖片(始終使用相同的硬編碼 id)。 我正在使用來自 ZD85544FCE402C7A203A96A48078ZED 的圖表 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 output:

array(1) { ["data"]=> array(0) { } }
  • 1881235503185是MY專輯的id,不受限制,對大家開放
  • access_token 是我從我的應用程序頁面獲得的用於我的 fb id 的令牌。 我沒有收到 oauth 錯誤。
  • 我有權限(user_photos)並嘗試添加十幾個其他權限。
  • 當我使用 Graph API Explorer 嘗試它時,它可以工作。

當我使用 Javascript SDK 它工作正常...

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

Output:投入使用

我是不是忘記了什么?

我明白了:應該是:

 $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');

還要確保您已檢查這些:

要閱讀“照片”object,您需要

任何有效的 access_token(如果是公共的) user_photos 訪問用戶上傳的照片和相冊的權限 user_photo_video_tags 訪問已標記用戶的照片的權限 Friends_photos 訪問朋友照片的權限 Friends_photo_video_tags 訪問已標記用戶朋友的照片的權限

源:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM