2013-02-22 75 views
1

我正在解析頁面的Facebook feed,並且我從data.picture中獲取feed的圖片;如果飼料從facebook的鏈接中獲取更大的圖片

的圖片鏈接,這是我得到的數據 功能getFeeds(令牌) {

var row; 
var tableData = []; 
var json, data, name, picture, description, likes; 

Ti.Facebook.requestWithGraphPath(Titanium.App.Properties.getString("pageID") +'/feed', {access_token: Token}, 'GET', function(e){ 
    if (e.success) { 
     json = JSON.parse(e.result); 
     for (i = 0; i < json.data.length; i++) { 
     if (json.data[i].message) { 
        row = addRow(json.data[i]); 
        tableData.push(row); 
        } 
      // } 

     } activityScreen.hide(); 
     table.setData(tableData); 
    } else { 
     if (e.error) { 
      //alert(e.error); 
     } else { 
      alert("#serverfail..."); 
     } 
    } 
}); 
} 

圖片我得到的是WAY小。

我怎樣才能得到更大的圖片?

感謝名單

回答

5

爲了從換頁後獲得更大的畫面,首先你需要檢查飼料的類型,如果類型等於照片,然後你可以在返回找到額外的「對象ID」結果。因此,如果您發送另一個圖形API調用,則使用此對象ID。在返回結果中,您將會有一個名爲「圖像」的字段。在圖像下你會有多個尺寸的圖像從那裏你可以選擇你想要的尺寸。 「圖片」字段中的默認值是縮略圖大小圖片,這就是爲什麼您的圖片大小很小。 (In the fb page, checkout the example link

https://graph.facebook.com/feed ===> 

"picture": "https://fbexternal-a.akamaihd.net/safe_image.php?d=AQB3Wv9mtyMdfNfw&w=90&h=90&url=https%3A%2F%2Fgeneralassemb.ly%2Fassets%2Fstatic%2FWin-A-Trip-To-SF-94fb4a6d732c86534f23e9a9ec2c2d4d.jpg", 
    "link": "https://generalassemb.ly/win/trip-to-sf", 
    "name": "Break Into the Big Leagues", 
    "type": "link", 

"type": "photo", 
     "status_type": "added_photos", 
     "object_id": "10151322059288553", 

,如果你用這種 「OBJECT_ID」

https://graph.facebook.com/10151322059288553 

"height": 300, 
    "width": 720, 
    "images": [ 
    { 
     "height": 853, 
     "width": 2048, 
     "source": "https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-prn1/s2048x2048/16985_10151322059288553_286780821_n.jpg" 
    }, 
    { 
     "height": 392, 
     "width": 940, 
     "source": "https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak-prn1/16985_10151322059288553_286780821_n.jpg" 
    }, 
+0

據我所知,這是獲得更大圖片的唯一方法。你必須做另一個不幸的圖形請求。 – Wenger 2013-02-22 16:56:58

+0

是的!這就是訣竅!感謝名單! – 2013-02-24 14:01:07

+0

試圖自己使用這個。找到object_id但是當我請求它時,我得到Unsupported get request。鏈接 - https://graph.facebook.com/10153328434075078任何幫助讚賞,因爲真的與使用Facebook API苦苦掙扎。 – v3nt 2013-10-21 10:26:24

6

如果你不想做第二個圖形要求,您可以只是在更換的S結尾的圖片網址與n。

所以http://photos-h.ak.fbcdn.net/hphotos-ak-ash3/12345_12345_12345_s.jpg變得如此http://photos-h.ak.fbcdn.net/hphotos-ak-ash3/12345_12345_12345_n.jpg

+5

這仍然適用於今天。然而,我還沒有找到一種方式來調整URL格式'http://external.ak.fbcdn.net/safe_image.php?d=AQAsyWsDk3pqGiqK&w=130&h=130&url=http%3A%2F%2Fi1.ytimg.com% 2Fvi%2FurBJNHelfWY%2Fmaxresdefault.jpg',顯然w和h不能修改。 – Ciantic 2014-02-10 19:56:35

4

,所以如果該鏈接是不是一個Facebook對象不能改變,因爲我知道,由safe_image.php鏈接就返回照片的大小,最好你可以做的是從鏈接中提取'url'查詢字符串變量,urldecode它並抓住原始圖片。

例如如果您的網址(從文章的「圖像」屬性)是

https://fbexternal-a.akamaihd.net/safe_image.php?d=AQBMV0YW8BCmCBMB&w=154&h=154&url=https%3A%2F%2Ffbstatic-a.akamaihd.net%2Frsrc.php%2Fv2%2Fy6%2Fr%2FYQEGe6GxI_M.png 

,並存儲在變量url,那麼這應該返回的全尺寸圖像的URL:

decodeURIComponent(url.match(/(url=)(.+)$/)[2]);