从Feed中的facebook链接获取更大的图片

时间:2013-02-22 11:42:47

标签: facebook-graph-api

我正在从页面解析Facebook提要,我从data.picture的feed中获取图片;如果Feed中有图片链接

这就是我获取数据的方式     函数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...");
        }
    }
});
}

我得到的图片很小。

如何获得更大的照片?

感谢名单

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:5)

为了从页面提要帖子中获取更大的图片,首先需要检查提要的类型,如果类型等于照片,那么您可以在返回结果中找到额外的“对象ID”。因此,如果您发送另一个图形api调用,请使用此对象ID。在返回结果中,您将有一个名为“images”的字段。在图像下,您将拥有多个尺寸的图像。从那里,您可以选择所需的尺寸。 “图片”字段中的默认值是缩略图大小图片,这就是图片大小较小的原因。 (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"
    }, 

答案 2 :(得分:4)

据我所知,您无法更改safe_image.php链接返回的照片大小,因此如果链接不是Facebook对象,您可以做的最好就是提取“网址”从链接中查询字符串变量,urldecode并抓取原始图片。

e.g。如果你的网址(来自帖子的'picture'属性)是

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中,然后返回完整尺寸图片的网址:

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