getting high resolution photos that were posted on a page wall/feed

被刻印的时光 ゝ 提交于 2019-11-27 14:56:22

问题


I'm getting my page wall with the open graph. And when someone posted a photo, I get it on the 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
  }

The problem is that the picture link is a low resolution copy of the picture.

How can I get the URL of the full picture ?

Thanks!!

Best

Geoffroy


回答1:


You can get different version of the photo by querying Graph API with it's object_id (not photo post_id which is id in results you provided).

Once you'll request the photo by object id you'll get array of images with URLs and dimensions:

http://graph.facebook.com/10150369820292147?fields=images



回答2:


All you need to do is :

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



回答3:


You can do this from the main posts list now using

/v2.3/105753476132681/posts?limit=5&fields=likes.summary(true),comments.summary(true), attachments

If attachments doesn't work, try full_picture - but that just gave the 100x100 image for me as well.

Attachments returns a data hash with a 640x480 version of the image at least (not sure what my orig. photo size was)




回答4:


Though requesting a photo by its object_id will return an array of images with different dimensions, in some cases this approach would require an additional call to the Facebook API.

A simpler approach is to add full_picture to your list of parameters, which will extract the highest resolution image associated with the post.

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

For example, if you want to extract all the posts from a Facebook page in the past X days, with the object_id approach you'd need to call the API 3 times:

  1. To get the page info.
  2. To extract the list of posts and obtain the object_id for each post.
  3. For each object_id, to retrieve the list of higher resolution images.



回答5:


Use this Code. Its Work for me and get Clear Image

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);


来源:https://stackoverflow.com/questions/9821586/getting-high-resolution-photos-that-were-posted-on-a-page-wall-feed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!