2011-09-26 105 views
1

我發現在Web設計雜誌上的腳本,使您能夠從Facebook專頁收集唱片數據,並把它放在你的網站。使用cURL獲取Facebook相冊JSON與PHP

腳本使用PHP的file_get_contents()函數的功能,其中我個人服務器上的偉大工程,但不允許在網絡解決方案託管。

在通過他們的文件來看,他們建議您使用捲曲會話來收集數據。我之前從未使用過cURL會話,所以這對我來說是個謎。任何幫助,將不勝感激。

我「是」的代碼使用是這樣的:

<?php 
    $FBid = '239319006081415'; 
    $FBpage = file_get_contents('https://graph.facebook.com/'.$FBid.'/albums'); 
    $photoData = json_decode($FBpage); 

    $albumID = $photoData->data[0]->id; 
$albumURL = "https://graph.facebook.com/".$albumID."/photos"; 

    $rawAlbumData = file_get_contents("https://graph.facebook.com/".$albumID."/photos"); 
$photoData2 = json_decode($rawAlbumData); 

    $a = 0; 

foreach($photoData2->data as $data) { 
     $photoArray[$a]["source"] = $data->source; 
    $photoArray[$a]["width"] = $data->width; 
    $photoArray[$a]["height"] = $data->height; 
    $a++; 
} 
?> 

,我試圖使用現在的代碼如下所示:

<?php 
    $FBid = '239319006081415'; 
$FBUrl = "https://graph.facebook.com/".$FBid."/albums"; 

    $ch = curl_init($FBUrl); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
$contents = curl_exec($ch); 
curl_close($ch); 
$photoData = json_decode($contents); 
?> 

當我嘗試回聲或操縱但是,$ photoData的內容顯然是空的。

有什麼想法?

+0

更改主機。他們無能爲力。沒有理由禁用'allow_url_fopen',但允許cURL。 – Gordon

+1

我聽說你。我將建議更改主持人。到目前爲止,我只有這些人的問題。但是,如果客戶不願意更換主機 - 我的手是捆綁的。 –

+0

我有一個FBJS(客戶端)唯一的相冊加載器,可以加載來自公共相冊的照片。可能會更有用:https://github.com/davidosomething/Facebook-OpenGraph-API-Album-Loader – davidosomething

回答

0

嘗試刪除curl_setopt($ CH,CURLOPT_BINARYTRANSFER,1);我不完全確定那是什麼,但我沒有使用它,而我的代碼看起來非常相似。我還使用:

json_decode($內容,真正的);這應該把結果放在一個數組而不是一個對象中。這種方法我運氣更好。

把它在爲我工作範疇。

0

試試這個它可以工作

$ch = curl_init($FBUrl); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
$contents = curl_exec($ch); 
$pageData = json_decode($contents); 
//object to array 
$objtoarr = get_object_vars($pageData); 
curl_close($ch); 
0

使用jQuery獲得的Json而不是這個技巧是從FB相冊下載的GreaseMonkey腳本

+0

如果服務器上需要數據,該怎麼辦?那麼jQuery將無法正常工作。 – Sven

相關問題