Получать фотографии с высоким разрешением, которые были размещены на стене страницы/фиде

Я получаю мою стену страницы с открытым графиком. И когда кто-то опубликовал фотографию, я получаю ее на 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
  }

Проблема заключается в том, что ссылка на изображение является копией изображения с низким разрешением.

Как я могу получить URL полной картины?

Спасибо!!

Лучшие

Жофруа

Ответ 1

Вы можете получить другую версию photo, запросив Graph API с ней object_id (а не фото post_id, которая id в результатах, которые вы предоставили).

После запроса photo по объекту id вы получите массив images с URL-адресами и размерами:

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

Ответ 2

Все, что вам нужно сделать, это:

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

Ответ 3

Вы можете сделать это из основного списка сообщений, используя

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

Если вложения не работают, попробуйте full_picture - но это просто дало мне изображение 100x100.

Вложения вернут хэш данных с версией изображения размером 640x480 (не уверен, какой размер моего оригинала был)

Ответ 4

Хотя запрос на фотографию с помощью object_id будет возвращать массив изображений с различными измерениями, в некоторых случаях этот подход потребует дополнительного вызова API Facebook.

Более простой подход заключается в добавлении full_picture в список параметров, который будет извлекать изображение с высоким разрешением, связанное с этим сообщением.

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

Например, если вы хотите извлечь все сообщения из страницы Facebook за прошлые X дней, с помощью подхода object_id вам нужно будет вызвать API 3 раза:

  • Чтобы получить информацию о странице.
  • Чтобы извлечь список сообщений и получить object_id для каждого сообщения.
  • Для каждого object_id, чтобы получить список изображений с более высоким разрешением.

Ответ 5

Используйте этот код. Его работа для меня и получение 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);