2016-01-08 45 views
0

做了一些搜索,但沒有快到了或者是舊的,不工作PHP Facebook的圖形API以及完整或更大尺寸的圖像後

我使用的圖形API來獲取Facebook的帖子和格式化他們對我的網站,正在工作的URL/curl/json的東西;但是,圖片返回默認爲最小的130x130版本。我在foreach循環中爲每個帖子添加了第二個json,以獲取較大的圖像URL,但這顯着降低了頁面加載速度。

是否有一個參數可以獲取較大的720x720圖片URl,而不是默認拉動的小圖片。我嘗試了用於第二個(在循環中)的字段= full_picture,但它不起作用。

使用的file_get_contents()函數代替捲曲溶液還嘗試,但沒有明顯的速度差

我也嘗試只是做一個字符串替換到初始排列的圖象數據但Facebook將那些OH =並且oe =令牌給他們的圖片網址,這樣詭計也不起作用。

$limit = 20; 
//App Info, needed for Auth 
$app_id = "app id removed :)"; 
$app_secret = "seceret code removed :)"; 

$url = 'https://graph.facebook.com/'.$profile_id.'/posts?limit='.$limit.'&access_token='.$app_id.'|'.$app_secret; 
$ch = curl_init(); 
$timeout = 5; 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
$data = curl_exec($ch); 
$json = json_decode($data, true); 

foreach($json[data] as $child) { 
    $thisDate = $child['created_time']; 
    $url='https://graph.facebook.com/' . $child['id'] . '?fields=full_picture&access_token='.$app_id.'|'.$app_secret; 
    /* 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $data = curl_exec($ch); 
    $pic = json_decode($data, true); 
    */ 
    $pic = json_decode(file_get_contents($url),true); 
} 

curl_close($ch); 

該解決方案確實工作,並提供了較大的圖像,但只是減慢頁面加載,由於循環內的額外捲曲電話。

謝謝

回答

2

你可以在一個請求的數據,通過使用fields參數:(如果你想要更多的附加字段,你必須列出它們爲好)

/me/posts?fields=message,full_picture 

+0

謝謝,通過添加消息選項工作。字段參數只能用於一個選項嗎? –

+0

不,當然它也適用於單一領域。 (只是假設你可能想要更多的數據而不僅僅是圖像) – CBroe

+0

那麼這是領域的東西是我發現並嘗試的第一件事,但它沒有在之前工作: - / –