Получать фотографии с высоким разрешением, которые были размещены на стене страницы/фиде
Я получаю мою стену страницы с открытым графиком.
И когда кто-то опубликовал фотографию, я получаю ее на 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);