获取张贴在页面墙/ Feed上的高分辨率照片

时间:2012-03-22 11:43:22

标签: facebook-graph-api feed image

我正在使用打开的图表获取页面墙。 当有人发布照片时,我会把它放在JSON上

{
     "id": "27888702146_10150369820322147",
     "from": {
        "name": "brocoli",
        "category": "Record label",
        "id": "27888702146"
     },
     "message": "Vincent Epplay / David Fenech / Jac Berrocal \u00e0 Beaubourg ce soir, 19h, gratos.",
     "picture": "http://photos-f.ak.fbcdn.net/hphotos-ak-snc7/305819_10150369820292147_27888702146_8255527_583491475_s.jpg",
     "link": "https://www.facebook.com/photo.php?fbid=10150369820292147&set=a.386279807146.165840.27888702146&type=1",
     "icon": "http://static.ak.fbcdn.net/rsrc.php/v1/yz/r/StEh3RhPvjk.gif",
     "type": "photo",
     "object_id": "10150369820292147",
     "created_time": "2011-10-16T08:22:21+0000",
     "updated_time": "2011-10-16T08:22:21+0000",
     "likes": {
        "data": [
           {
              "name": "brocoli",
              "category": "Record label",
              "id": "27888702146"
           },
           {
              "name": "Agathe Morier",
              "id": "601668526"
           }
        ],
        "count": 2
     },
     "comments": {
        "count": 0
     },
     "is_published": true
  }

问题是图片链接是图片的低分辨率副本。

如何获取完整图片的网址?

谢谢!

最佳

弗鲁瓦

5 个答案:

答案 0 :(得分:18)

您可以通过使用photo(而非照片object_id查询图表API来获得post_id的不同版本,而id在您提供的结果中为photo

一旦您按对象id请求images,您将获得包含网址和尺寸的http://graph.facebook.com/10150369820292147?fields=images 数组:

{{1}}

答案 1 :(得分:5)

您需要做的就是:

http://graph.facebook.com/me?fields=picture.height(961) 
// replace 961 with your required height which u want

答案 2 :(得分:4)

您现在可以使用

从主帖子列表中执行此操作
/v2.3/105753476132681/posts?limit=5&fields=likes.summary(true),comments.summary(true), attachments

如果附件不起作用,请尝试使用full_picture - 但这也为我提供了100x100图像。

附件至少返回一个带有640x480版本图像的数据哈希(不确定我的原始照片大小是多少)

答案 3 :(得分:3)

虽然通过object_id请求照片会返回一系列不同维度的图片,但在某些情况下,此方法需要额外调用Facebook API。

更简单的方法是将full_picture添加到参数列表中,这将提取与帖子关联的最高分辨率图像。

/v2.2/6275848869/posts?fields=full_picture

例如,如果您想在过去的X天内从Facebook页面中提取所有帖子,则需要使用object_id方法调用API 3次:

  1. 获取页面信息。
  2. 提取帖子列表并获取每个帖子的object_id
  3. 对于每个object_id,检索更高分辨率图像的列表。

答案 4 :(得分:2)

使用此代码。它为我工作并获得清晰的图像

String PICTURE_URL;

String getPicture = hashMap.get("picture");
        if (getPicture.contains("_t.")) {
            PICTURE_URL = getPicture.replaceAll("_t.", "_n.");
        } else if (getPicture.contains("_a.")) {
            PICTURE_URL = getPicture.replaceAll("_a.", "_n.");
        } else if (getPicture.contains("_s.")) {
            PICTURE_URL = getPicture.replaceAll("_s.", "_n.");
        } else if (getPicture.contains("_q.")) {              
            PICTURE_URL = getPicture.replaceAll("_q.", "_n.");
        }
        url=new URL(PICTURE_URL);
        Bitmap bitmap=BitmapFactory.decodeStream(url.openConnection().getInputStream());
        ((ImageView)view.findViewById(R.id.imageView_FullImage)).setImageBitmap(bitmap);