2014-06-05 5 views
2

Моя цель - тянуть латышские сообщения с заданной страницы. Это отлично работает с использованием конечной точки API {page_id}/posts. Некоторые из сообщений имеют type="photo" и имеют поля picture и full_picture. Проблема в том, что эти URL-адреса изображения небольшие, больше похожи на миниатюры, чем на изображения.Facebook Graph API - страница/сообщения - как получить фото url?

Я заметил, что в последнее время есть другое поле object_id, которое поставляется с любым изображением типа фотографии. Выполнение запроса к возвращает URL-адрес изображения.

Я хотел бы получить код от {object_id}/picture при потянув сообщениях от {page_id}/posts, но я не могу найти способ сделать это. Я попытался вложить запрос {page_id}/posts?fields=object_id.fields(picture), и все, что я получил, это Subfields are not supported by object_id.

Как я могу получить URL-адрес изображения, отправленного страницей?

Редактировать

Просто чтобы прояснить мой вопрос:

Я хочу, чтобы вытащить все последние сообщения на данной странице. А для сообщений с type="photo" я хочу вытащить URL-адрес изображения в дополнение к другим полям, таким как сообщение. Предпочтительно, без дополнительного запроса Graph API.

Мой обычный запрос выглядит следующим образом:

{page_id}/posts?fields=id,object_id,message,description,full_picture,source

Это приносит все виды сообщений для page_id. full_picture - это URL-адрес изображения уменьшенного размера. Я хотел бы получить URL-адрес с тем же изображением с большим размером, если это возможно.

+0

Ну, ваш вопрос дает ответ на мой вопрос ... Это может решить ваш вопрос: http://stackoverflow.com/questions/17438847/using-facebook-graph-api-how-to-get-news- feed-with-large-picture-size-if-the-fee –

ответ

0

Используйте поле picture, чтобы получить URL-адрес эскиза. Это больше всего вы сможете получить от одного вызова API. Но вы можете изменить этот URL-адрес, чтобы получить изображение с полным разрешением. Проверьте этот ответ.

https://stackoverflow.com/a/22897707/1754999

Если вы используете Пикассо, вы можете проверить на ошибки переадресации в загрузке (в случае, если этот метод не работает) и установить другой API вызов к object_id поста. Поле source в этом вызове API будет полностью разрешенным изображением, но используйте его только в том случае, если вышеуказанный метод не работает.

EDIT: Вы в основном заменить _s с _n или _o в URL.

+0

Да, я использовал для изменения '_s' с' _n', он работал некоторое время, но в последнее время я получил изображения, где этот метод не работал. изменение на '_n' принесло только изображение 1px на 1px, но когда я получил url через' object_id', у меня появилось большое изображение. не знал о '_o', попробуем это, ty;) – Neara

+0

Удивительный! для того, чтобы направлять меня на другой вопрос, я не нашел его раньше, и это помогло мне решить мою проблему. Похоже, это решение работает только для графика api v1.0, исправьте меня, если я ошибаюсь. В следующем году нам придется найти другое решение. – Neara

+0

Я использовал его с 2.0. Также используйте '_n'. – Wenger

0

Вы можете сделать это в FQL:

select pid, object_id, src_big from photo where pid in (select attachment.media.photo.pid from stream where source_id={PAGE_ID} and type=247) 

где {PAGE_ID} является числовым идентификатором вашей страницы.

+0

может ли это быть адаптировано для вытягивания всех типов сообщений со страницы? и для сообщений с 'type =" photo "' pull 'src_big' также? – Neara

+0

Этот FQL вытаскивает именно то, что вы просили: для всех «фото» сообщений страницы большая репрезентация фотографий 'src_big'. См. Https://developers.facebook.com/docs/reference/fql/stream/ – Tobi

+0

, что я прошу, это вытащить все последние сообщения для данной страницы. Эти должности могут быть разных типов. Один из типов, которые я вижу, - это фото, и у этих сообщений есть URL-адрес эскиза фотографии. Я пытаюсь найти способ получить фото url, а также получать последние сообщения всех видов. Я отредактирую свой вопрос, чтобы прояснить это. – Neara

2

Запрос по attachments Поле. Пример:

{page_id}/posts?fields=attachments,id,object_id,message,description,full_picture,source 

Это даст вам полноразмерные изображения.

Обратите внимание, что это может не работать для сообщений о статусе обновления.

Смежные вопросы