2013-02-22 76 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]);