1

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

这就是我获取数据函数 getFeeds(Token) {

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...");
        }
    }
});
}

我得到的图片太小了。

我怎样才能获得更大的图片?

谢谢

4

3 回答 3

6

如果您不想发出第二个图形请求,您只需将图片 URL 末尾的 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

于 2013-03-04T16:19:54.967 回答
5

为了从页面提要帖子中获得更大的图片,首先您需要检查提要的类型,如果类型等于照片,那么您可以在返回结果中找到额外的“对象id”。因此,如果您发送另一个图形 api 调用,请使用此对象 ID。在返回结果中,您将拥有名为“图像”的字段。在图像下,您将有多个尺寸的图像从那里您可以选择所需的尺寸。“图片”字段中的默认值是缩略图大小的图片,这就是您的图片尺寸很小的原因。(在 fb 页面中,查看示例链接

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"
    }, 
于 2013-02-22T15:27:56.427 回答
4

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

例如,如果您的 URL(来自帖子的“图片”属性)是

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]);
于 2014-08-15T02:00:22.860 回答