2011-03-09 130 views
0

我想抓住張貼到本頁面牆上的照片。 下面是我的代碼:來自Facebook牆壁的照片來源

include_once 'facebook.php'; 
include_once 'config.php'; 
require 'DropboxUploader.php'; 

$feed = $facebook->api('/me/feed'); 
foreach($feed['data'] as $feeds) 
{ 
     if(!$feeds["object_id"]==null) 
     { 
     echo "Feeds secion", "<br />"; 
     echo $feeds["picture"], "<br />"; 
     echo "<img src='{$feeds['picture']}' />", "<br />"; 
     //echo "This is feed object_id ".$feeds["object_id"], "<br />"; 
     echo "This is feed id ".$feeds["id"], "<br />"; 
     $target_path = "uploads/"; 
     $target_path = $target_path . basename($feeds["picture"]); 

     $content = file_get_contents($feeds["source"]); 
     file_put_contents($target_path, $content); 

     $uploader = new DropboxUploader('[email protected]', 'testing'); 
     $uploader->upload($target_path, 'imageStore'); 

     } 


} 

我能搶到這是圖像的縮略圖畫面。我想問問我怎樣才能抓住實際的照片來源本身,而不是縮略圖。

請指教我。謝謝!

回答

0

經過一番嘗試和檢查後,我想我沒有辦法從facebook牆抓取實際照片,因爲它們都是預覽縮略圖。

我對這件事採取了另一種方法。 將照片貼到牆上時,Faceboook會自動創建(如果文件夾不存在)相冊「牆照片」並將照片放入其中。 我使用這個理論來抓取相冊ID和裏面的所有照片。

$album = $facebook->api('/'.$app_id.'/albums'); 
foreach($album['data'] as $photo) 
{ 
    if($photo['name']=="Wall Photos") 
    { 
     $image = $facebook->api('/'.$photo['id'].'/photos'); 
     photoGrab($image); //function 
    } 
}//each of $album foreach 

這不是一個非常理想的想法。 請告訴我,如果有更好的和有效的方法。

謝謝!

+0

這僅適用於照片是由創作者本身貼到牆上的情況。 – meAtStackOverflow 2011-03-22 07:27:24